Skip to content

Commit

Permalink
Merge remote-tracking branch 'refs/remotes/origin/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
ljl committed Jan 27, 2024
2 parents 37e4d22 + 093c911 commit d5858d2
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 17 deletions.
28 changes: 13 additions & 15 deletions spi/spi-search/src/serv/pg/search_pg_item_serv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,10 @@ use std::collections::{HashMap, HashSet};

use pinyin::{to_pinyin_vec, Pinyin};
use tardis::{
basic::{dto::TardisContext, error::TardisError, result::TardisResult},
chrono::Utc,
db::{
basic::{dto::TardisContext, error::TardisError, result::TardisResult}, chrono::Utc, db::{
reldb_client::{TardisRelDBClient, TardisRelDBlConnection},
sea_orm::{FromQueryResult, Value},
},
serde_json::{self, json, Map},
web::web_resp::TardisPage,
TardisFuns, TardisFunsInst,
}, log::info, serde_json::{self, json, Map}, web::web_resp::TardisPage, TardisFuns, TardisFunsInst
};

use bios_basic::{basic_enumeration::BasicQueryOpKind, dto::BasicQueryCondInfo, helper::db_helper, spi::spi_funs::SpiBsInst};
Expand All @@ -27,11 +22,12 @@ const FUNCTION_EXT_SUFFIX_FLAG: &str = "_ext_";
const INNER_FIELD: [&str; 7] = ["key", "title", "content", "owner", "own_paths", "create_time", "update_time"];

pub async fn add(add_req: &mut SearchItemAddReq, funs: &TardisFunsInst, ctx: &TardisContext, inst: &SpiBsInst) -> TardisResult<()> {
info!("load SearchConfig: {:?}", funs.conf::<SearchConfig>().word_length);
let mut params = Vec::new();
params.push(Value::from(add_req.kind.to_string()));
params.push(Value::from(add_req.key.to_string()));
params.push(Value::from(add_req.title.as_str()));
if add_req.title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(15) {
if add_req.title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(30) {
params.push(Value::from(format!(
"{} {}",
add_req.title.as_str(),
Expand Down Expand Up @@ -71,7 +67,7 @@ pub async fn add(add_req: &mut SearchItemAddReq, funs: &TardisFunsInst, ctx: &Ta
let bs_inst = inst.inst::<TardisRelDBClient>();
let (mut conn, table_name) = search_pg_initializer::init_table_and_conn(bs_inst, &add_req.tag, ctx, true).await?;
conn.begin().await?;
let word_combinations_way = if add_req.title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(15) { "public.chinese_zh" } else { "simple" };
let word_combinations_way = if add_req.title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(30) { "public.chinese_zh" } else { "simple" };
conn.execute_one(
&format!(
r#"INSERT INTO {table_name}
Expand Down Expand Up @@ -103,7 +99,7 @@ pub async fn modify(tag: &str, key: &str, modify_req: &mut SearchItemModifyReq,
if let Some(title) = &modify_req.title {
sql_sets.push(format!("title = ${}", params.len() + 1));
params.push(Value::from(title));
let word_combinations_way = if title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(15) { "public.chinese_zh" } else { "simple" };
let word_combinations_way = if title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(30) { "public.chinese_zh" } else { "simple" };
sql_sets.push(format!("title_tsv = to_tsvector('{word_combinations_way}', ${})", params.len() + 1));
if title.chars().count() > 15 {
params.push(Value::from(format!(
Expand Down Expand Up @@ -179,9 +175,11 @@ WHERE key = $1
fn generate_word_combinations_with_length(original_str: &str, split_len: usize) -> Vec<String> {
let mut combinations = Vec::new();
let original_chars = original_str.chars().map(|c| c.to_string()).collect::<Vec<_>>();
for i in 0..original_chars.len() - split_len + 1 {
let word = original_chars[i..=(i + split_len - 1)].join("");
combinations.push(word);
if original_chars.len() > split_len {
for i in 0..original_chars.len() - split_len + 1 {
let word = original_chars[i..=(i + split_len - 1)].join("");
combinations.push(word);
}
}
combinations
}
Expand Down Expand Up @@ -729,8 +727,8 @@ pub async fn refresh_data(tag: String, funs: &TardisFunsInst, ctx: &TardisContex
for item in result {
let title: String = item.try_get("", "title")?;
let key: String = item.try_get("", "key")?;
let word_combinations_way = if title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(15) { "public.chinese_zh" } else { "simple" };
let word_combinations = if title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(15) {
let word_combinations_way = if title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(30) { "public.chinese_zh" } else { "simple" };
let word_combinations = if title.chars().count() > funs.conf::<SearchConfig>().word_length.unwrap_or(30) {
Value::from(format!(
"{} {}",
title.as_str(),
Expand Down
3 changes: 3 additions & 0 deletions spi/spi-search/tests/config/conf-default.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
[cs]

[csm.spi-search]
word_length=30

[fw.web_server]
port = 8080
tls_key = """
Expand Down
4 changes: 2 additions & 2 deletions spi/spi-search/tests/test_search.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ async fn init_data() -> TardisResult<()> {
sleep(Duration::from_millis(500)).await;

let funs = TardisFuns::inst_with_db_conn(DOMAIN_CODE.to_string(), None);
let kind_id = RbumKindServ::get_rbum_kind_id_by_code(spi_constants::SPI_ES_KIND_CODE, &funs).await?.unwrap();
let kind_id = RbumKindServ::get_rbum_kind_id_by_code(spi_constants::SPI_PG_KIND_CODE, &funs).await?.unwrap();
let ctx = TardisContext {
own_paths: "".to_string(),
ak: "".to_string(),
Expand All @@ -61,7 +61,7 @@ async fn init_data() -> TardisResult<()> {
&SpiBsAddReq {
name: TrimString("test-spi".to_string()),
kind_id: TrimString(kind_id),
conn_uri: env::var("TARDIS_FW.ES.URL").unwrap(),
conn_uri: env::var("TARDIS_FW.DB.URL").unwrap(),
ak: TrimString("".to_string()),
sk: TrimString("".to_string()),
ext: "{\"max_connections\":20,\"min_connections\":10}".to_string(),
Expand Down

0 comments on commit d5858d2

Please sign in to comment.