Kam*_*jay 5 debugging solr java-11
环境-java版本“11.0.12”2021-07-20 LTS,solr-8.9.0
我已经在 solr 中加载了一个 csv 文件。csv 文件有一个字段“名称”。solr 中“名称”列的类型定义为“text_general”。
据我所知,要执行模糊搜索,请在单个单词术语末尾使用波形符 ~ 符号。距离参数的默认值为2。
我使用了以下模糊搜索查询
http://localhost:8983/solr/startsolr/select?indent=on&wt=json&q=(Name:'Ellyse~') AND (Name:'Perry~')&sort=field(Name) asc
Run Code Online (Sandbox Code Playgroud)
上述模糊搜索查询的结果名称为“Ellysea Perry”、“Ellys Perry”
但是为什么上面的查询没有给出具有以下名称“Elly Perry”的文档(因为默认距离参数为 2 并且 2 个字符 (se) 不存在。)
editDistance 为 '2' 的字符串应该出现在输出中(例如 'Elly Perry')。
我理解“最大编辑距离为 2 时,我最多可以进行 2 次插入、删除或替换”。
Name available in loaded data - 'Elly Perry'
Input query parameter - (Name:'Ellyse~') AND (Name:'Perry~')
Run Code Online (Sandbox Code Playgroud)
因为从名字“Ellyse”中删除 2 个字符后,它就变成了“Elly”。所以它应该会产生输出。有人可以帮我找到丢失的部分吗? https://en.wikipedia.org/wiki/Levenshtein_distance
我希望以下行匹配:
'Ellysea Perry',
'Ellys Perry',
'Elly Perry'
Run Code Online (Sandbox Code Playgroud)
但只能得到以下两个
'Ellysea Perry',
'Ellys Perry'
Run Code Online (Sandbox Code Playgroud)
“名称”字段在托管架构中配置如下 -
<field name="Name" type="text_general" multiValued="false" indexed="true" stored="true" required="true"/>
Run Code Online (Sandbox Code Playgroud)
FieldType 'text_general' 描述如下-
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100" multiValued="true">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Run Code Online (Sandbox Code Playgroud)
根据文档===>“要执行模糊搜索,请在单个单词术语的末尾使用波形符 ~ 符号。”。
尽量说得更清楚,我对这个问题缺乏想法,即使它听起来像一个经典:我花了几个小时尝试解决这个问题,但一无所获。
我已经解决了错误,现在它正在编辑距离:2
修改后的查询如下:-
http://localhost:8983/solr/startsolr/select?indent=on&wt=json&q=(Name:Ellyse~) AND (Name:Perry~)&sort=field(Name) asc
Run Code Online (Sandbox Code Playgroud)
但更进一步 - 我已经在 solr 中索引了 1600 万条记录,但是模糊搜索不适用于具有 40K 记录的特定标记。在其余情况下它的工作原理。
我应该在 solr-config.xml 文件中配置一些参数吗?
| 归档时间: |
|
| 查看次数: |
503 次 |
| 最近记录: |