我有一个由 haystack 创建的架构,用于在 Solr 4.3 中为书籍和作者编制索引 执行搜索时,除了包含连字符的搜索词外,一切正常。
我知道您必须使用反斜杠来转义它们,但即使使用 solr Web 界面,我也无法找到正确的文档。
如下图所示,有一个名为 Ukiyo-E 的作者,可以使用full_name:(ukiyo)找到。输入full_name:(ukiyo-e)或full_name:(ukiyo-e)时,我找不到任何东西。
编辑
架构信息:
<fieldType name="edge_ngram" class="solr.TextField" positionIncrementGap="1">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
</analyzer>
</fieldType>
...
<field name="full_name" type="edge_ngram" indexed="true" stored="true" multiValued="false" />
分析仪结果: