Fixes search not reading sidetypes (#823)

This commit is contained in:
Wyatt Verchere
2024-01-06 13:36:26 -08:00
committed by GitHub
parent 917b89e44f
commit 527521328f
3 changed files with 14 additions and 21 deletions

View File

@@ -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 \

View File

@@ -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(),
))
} }

View File

@@ -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.");