删除标点符号';solr搜索中的s
我是solr的新手,我有一个在solr中编制索引的文档,例如删除标点符号';solr搜索中的s,solr,Solr,我是solr的新手,我有一个在solr中编制索引的文档,例如 { "foodType": "basicFood", "fulltext": [ "basicFood", "3.718625", "1 tbsp", "Butter, salted" ], "slims": "3.718625", "displayText": "1 tbsp", "displayName": "Butter, salt
{
"foodType": "basicFood",
"fulltext": [
"basicFood",
"3.718625",
"1 tbsp",
"Butter, salted"
],
"slims": "3.718625",
"displayText": "1 tbsp",
"displayName": "Butter, salted"
},
当我搜索黄油时,结果为空,但对于查询黄油效果良好,如何使其也适用于黄油?为索引和查询阶段向分析器添加以下过滤器
<filter class="solr.PatternReplaceFilterFactory" pattern="([^A-Za-z0-9])" replacement="" replace="all"/>
更新 如果需要使用
WordDelimiterFilter
filter。请尝试以下配置:
<filter class="solr.WordDelimiterFilter" generateWordParts="1" catenateWords="1" splitOnCaseChange="0" generateNumberParts="0" splitOnCaseChange="0"/>
这将在分隔符处拆分单词并再次连接它们。所有其他拆分都被禁用,如
数字字符串
,驼峰大小写更改
和从字母到数字的转换。如果需要,您可以通过提供非零值打开。您可以提供查询url吗?这两个查询使用的是什么,问题不清楚?这不起作用。你能提供起作用的东西吗?在索引时数据的字段类型是什么?实际上,这种情况下合适的过滤器是WordDelimiterFilter,它提供了更多选项,专门设计用于处理标点符号和其他分隔符。在这里查看更多详细信息:是。您可以使用WordDelimiterFilter
删除标点符号。但它会将令牌拆分为多个令牌,并提供连接它们的选项。这基本上是通过替换所有非字母数字字符来实现的。我建议,检查您的数据集并相应地使用。专门为角落的案件。
<filter class="solr.WordDelimiterFilter" generateWordParts="1" catenateWords="1" splitOnCaseChange="0" generateNumberParts="0" splitOnCaseChange="0"/>