You've already forked AstralRinth
forked from didirus/AstralRinth
Fixes search not reading sidetypes (#823)
This commit is contained in:
@@ -23,7 +23,8 @@ ARG SQLX_OFFLINE=true
|
|||||||
RUN cargo build --release
|
RUN cargo build --release
|
||||||
|
|
||||||
|
|
||||||
FROM debian:bullseye-slim
|
# Final Stage
|
||||||
|
FROM ubuntu:latest
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install -y --no-install-recommends ca-certificates \
|
&& apt-get install -y --no-install-recommends ca-certificates \
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
use std::collections::HashMap;
|
|
||||||
use std::sync::Arc;
|
|
||||||
|
|
||||||
use dashmap::DashSet;
|
|
||||||
use futures::TryStreamExt;
|
use futures::TryStreamExt;
|
||||||
use log::info;
|
use log::info;
|
||||||
|
use std::collections::HashMap;
|
||||||
|
|
||||||
use super::IndexingError;
|
use super::IndexingError;
|
||||||
use crate::database::models::{project_item, version_item, ProjectId, VersionId};
|
use crate::database::models::{project_item, version_item, ProjectId, VersionId};
|
||||||
@@ -54,10 +51,8 @@ pub async fn index_local(
|
|||||||
pool: &PgPool,
|
pool: &PgPool,
|
||||||
redis: &RedisPool,
|
redis: &RedisPool,
|
||||||
visible_ids: HashMap<VersionId, (ProjectId, String)>,
|
visible_ids: HashMap<VersionId, (ProjectId, String)>,
|
||||||
) -> Result<(Vec<UploadSearchProject>, Vec<String>), IndexingError> {
|
) -> Result<Vec<UploadSearchProject>, IndexingError> {
|
||||||
info!("Indexing local projects!");
|
info!("Indexing local projects!");
|
||||||
let loader_field_keys: Arc<DashSet<String>> = Arc::new(DashSet::new());
|
|
||||||
|
|
||||||
let project_ids = visible_ids
|
let project_ids = visible_ids
|
||||||
.values()
|
.values()
|
||||||
.map(|(project_id, _)| project_id)
|
.map(|(project_id, _)| project_id)
|
||||||
@@ -120,10 +115,6 @@ pub async fn index_local(
|
|||||||
|
|
||||||
let version_fields = v.version_fields.clone();
|
let version_fields = v.version_fields.clone();
|
||||||
let loader_fields = models::projects::from_duplicate_version_fields(version_fields);
|
let loader_fields = models::projects::from_duplicate_version_fields(version_fields);
|
||||||
for v in loader_fields.keys().cloned() {
|
|
||||||
loader_field_keys.insert(v);
|
|
||||||
}
|
|
||||||
|
|
||||||
let license = match m.inner.license.split(' ').next() {
|
let license = match m.inner.license.split(' ').next() {
|
||||||
Some(license) => license.to_string(),
|
Some(license) => license.to_string(),
|
||||||
None => m.inner.license.clone(),
|
None => m.inner.license.clone(),
|
||||||
@@ -223,11 +214,5 @@ pub async fn index_local(
|
|||||||
uploads.push(usp);
|
uploads.push(usp);
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok((
|
Ok(uploads)
|
||||||
uploads,
|
|
||||||
Arc::try_unwrap(loader_field_keys)
|
|
||||||
.unwrap_or_default()
|
|
||||||
.into_iter()
|
|
||||||
.collect(),
|
|
||||||
))
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,13 @@ pub async fn index_projects(
|
|||||||
|
|
||||||
let indices = get_indexes(config).await?;
|
let indices = get_indexes(config).await?;
|
||||||
|
|
||||||
|
let all_loader_fields =
|
||||||
|
crate::database::models::loader_fields::LoaderField::get_fields_all(&pool, &redis)
|
||||||
|
.await?
|
||||||
|
.into_iter()
|
||||||
|
.map(|x| x.field)
|
||||||
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
let all_ids = get_all_ids(pool.clone()).await?;
|
let all_ids = get_all_ids(pool.clone()).await?;
|
||||||
let all_ids_len = all_ids.len();
|
let all_ids_len = all_ids.len();
|
||||||
info!("Got all ids, indexing {} projects", all_ids_len);
|
info!("Got all ids, indexing {} projects", all_ids_len);
|
||||||
@@ -93,10 +100,10 @@ pub async fn index_projects(
|
|||||||
(version_id, (project_id, owner_username.to_lowercase()))
|
(version_id, (project_id, owner_username.to_lowercase()))
|
||||||
})
|
})
|
||||||
.collect::<HashMap<_, _>>();
|
.collect::<HashMap<_, _>>();
|
||||||
let (uploads, loader_fields) = index_local(&pool, &redis, id_chunk).await?;
|
let uploads = index_local(&pool, &redis, id_chunk).await?;
|
||||||
|
|
||||||
info!("Got chunk, adding to docs_to_add");
|
info!("Got chunk, adding to docs_to_add");
|
||||||
add_projects(&indices, uploads, loader_fields, config).await?;
|
add_projects(&indices, uploads, all_loader_fields.clone(), config).await?;
|
||||||
}
|
}
|
||||||
|
|
||||||
info!("Done adding projects.");
|
info!("Done adding projects.");
|
||||||
|
|||||||
Reference in New Issue
Block a user