Solr全名搜索:如何查找包含带通配符的破折号的条目

Solr全名搜索:如何查找包含带通配符的破折号的条目,solr,Solr,我使用的是Solr4.10.3。我尝试将Solr配置为忽略搜索中的破折号: 我有一个条目“pan pan,peter”,如果我搜索,就会找到它 (彼得·帕*) (彼得·潘帕*) 甚至 (pe-te-r潘帕*) 也 (彼得·帕恩·帕恩) (不带*)匹配项 但是 (彼得·潘*) (彼得·潘*) 没有结果 似乎破折号和*的组合是个问题 我想在键入的每个阶段找到“pan pan,peter”,“peter pan pan”。尝试使用下面的字段类型 <fieldType name="text_d

我使用的是Solr4.10.3。我尝试将Solr配置为忽略搜索中的破折号:


我有一个条目“pan pan,peter”,如果我搜索,就会找到它

(彼得·帕*)
(彼得·潘帕*)

甚至

(pe-te-r潘帕*)

(彼得·帕恩·帕恩)

(不带*)匹配项

但是

(彼得·潘*)
(彼得·潘*)

没有结果

似乎破折号和*的组合是个问题


我想在键入的每个阶段找到
“pan pan,peter”
“peter pan pan”

尝试使用下面的字段类型

<fieldType name="text_delimeter" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" preserveOriginal="1" catenateAll="1" splitOnCaseChange="0"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>


我尝试了你的文章,并分析了同样的内容。我发现上述类型适合你。我也在工具中分析了相同的问题。

解决了我的问题。感谢you@jannis:很高兴知道:)