solr同义词搜索不起作用

2020-09-26 00:43发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在使用hybris 6.2.0.11和Hybris OOB solr独立实例。

我已经在impex下面创建了同义词。

INSERT_UPDATE SolrSynonymConfig; facetSearchConfig(name)[unique = true]; synonymFrom [unique = true]; synonymTo ;; language(isocode); $ facetSearchConfigName;" kingdom12345";" yyyy"; en

注意:" yyyy"文本出现在产品名称中,该名称已在solr服务器中提供。

我尝试了"同义词导出"按钮,也尝试通过HMC进行完全索引。

但是当搜索文本" kingdom12345"时,它应该给出字符串" yyyy"的结果。 此查询应提供产品,但找不到产品。

当我在tomcat控制台中签入时。 它给出以下查询。

DisMaxFreeTextQueryBuilder] {!multiMaxScore tie = 0.0}((code_string:kingdom ^ 90.0)OR(keywords_text_en:kingdom ^ 20.0)OR(manufacturerName_text:kingdom ^ 40.0)OR(categoryName_text_en_mv:kingdom ^ 20.0)OR(ean_string:kingdom ^ 100.0)或(name_text_en:kingdom ^ 50.0)或((keywords_text_en:kingdom〜^ 10.0)或(manufacturerName_text:kingdom〜^ 20.0)OR(categoryName_text_en_mv:kingdom〜^ 10.0)OR(name_text_en:kingdom〜^ 25.0))或 ((code_string:kingdom * ^ 45.0)OR(ean_string:kingdom * ^ 50.0))OR((keywords_text_en:" kingdom" ^ 40.0)OR(manufacturerName_text:" kingdom" ^ 80.0)OR(categoryName_text_en_mv:" kingdom" ^ 40.0) 或(name_text_en:" kingdom" ^ 100.0))

问题1:从上面的日志看来,同义词无效,它被视为纯文本搜索。 如果这不是设置同义词的正确方法,那么如何将例如" kingdom12345"的同义词设置为" yyyy"?

问题2::如何检查(UI步骤)solr服务器中存在的所有同义词?

谢谢。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我正在使用hybris 6.2.0.11和Hybris OOB solr独立实例。

我已经在impex下面创建了同义词。

INSERT_UPDATE SolrSynonymConfig; facetSearchConfig(name)[unique = true]; synonymFrom [unique = true]; synonymTo ;; language(isocode); $ facetSearchConfigName;" kingdom12345";" yyyy"; en

注意:" yyyy"文本出现在产品名称中,该名称已在solr服务器中提供。

我尝试了"同义词导出"按钮,也尝试通过HMC进行完全索引。

但是当搜索文本" kingdom12345"时,它应该给出字符串" yyyy"的结果。 此查询应提供产品,但找不到产品。

当我在tomcat控制台中签入时。 它给出以下查询。

DisMaxFreeTextQueryBuilder] {!multiMaxScore tie = 0.0}((code_string:kingdom ^ 90.0)OR(keywords_text_en:kingdom ^ 20.0)OR(manufacturerName_text:kingdom ^ 40.0)OR(categoryName_text_en_mv:kingdom ^ 20.0)OR(ean_string:kingdom ^ 100.0)或(name_text_en:kingdom ^ 50.0)或((keywords_text_en:kingdom〜^ 10.0)或(manufacturerName_text:kingdom〜^ 20.0)OR(categoryName_text_en_mv:kingdom〜^ 10.0)OR(name_text_en:kingdom〜^ 25.0))或 ((code_string:kingdom * ^ 45.0)OR(ean_string:kingdom * ^ 50.0))OR((keywords_text_en:" kingdom" ^ 40.0)OR(manufacturerName_text:" kingdom" ^ 80.0)OR(categoryName_text_en_mv:" kingdom" ^ 40.0) 或(name_text_en:" kingdom" ^ 100.0))

问题1:从上面的日志看来,同义词无效,它被视为纯文本搜索。 如果这不是设置同义词的正确方法,那么如何将例如" kingdom12345"的同义词设置为" yyyy"?

问题2::如何检查(UI步骤)solr服务器中存在的所有同义词?

谢谢。

付费偷看设置
发送
5条回答
nice_wp
1楼-- · 2020-09-26 01:12

您能否转到solr管理控制台(默认情况下为 http://localhost:8983),选择 核心并进行分析。 在"字段类型"中,选择" text_en",然后在"字段值(查询)"中输入domingdom12345。 现在点击"分析值",并检查该查询是否还显示同义词。

Bunny_CDM
2楼-- · 2020-09-26 01:12

我已经按照上述步骤指定了值。solr分析器中有值(请检查附件 alt text),但是当搜索文本" kingdom12345"时,店面价值不大。

callcenter油条
3楼-- · 2020-09-26 01:15

好,对字段值(查询)执行相同的操作并将其粘贴到此处。 如果您从"售出"管理控制台进行查询,是否会得到理想的结果? 您还可以启用solrQueryDebuggingListener-backoffice-> indexedTypes->选择indexedType-> Administration选项卡->添加侦听器solrQueryDebuggingListener。 然后重新运行搜索,并在控制台中检查匹配的内容和原因。

软件心理学工程师
4楼-- · 2020-09-26 00:58

感谢回复。

1-请在solr管理控制台中找到字段值查询的attachment1(synonym1.png  alt text) 。

2-如上所述,我在SolrIndexTypeModel中添加了侦听器(bean id =" solrQueryDebuggingListener")。 请在附件2中找到日志(solrlog.txt 链接文本)。

对我来说,仍然没有任何解决方案。

spaceman01
5楼-- · 2020-09-26 00:51

嗯,如果您在后台中正确添加此侦听器,您应该会看到类似以下的输出:apparelProductCatalog/Online/300791705 = 210.27545 = sum of:64.68245 =最大值:64.68245 =重量(categoryName_text_en_mv:在2175中的鞋子) ,从以下公式计算为log(1 +(docCount-docFreq + 0.5)/(docFreq + 0.5)):192.0 = docFreq 2484.0 = docCount 1.2643505 = tfNorm,计算为(freq (k1 + 1))/(freq + k1 (1- b + b * fieldLength/avgFieldLength))来自:2.0 = termFreq = 2.0 1.2 =参数k1 0.75 =参数b 6.1014495 = avgFieldLength 8.0 = fieldLength 16.228098 =最大值:16.228098 =总和:16.228098 = weight(categoryName_text_en_mv:shoe in 2175)[SchemaSimilarity],结果为:16.228098 =得分(doc = 2175,freq = 2.0 = termFreq = 2.0),

这将使您非常了解匹配的内容和原因。 您可以验证是否正确添加了侦听器吗?

一周热门 更多>