我在托管架构中有一个如下所示的字段:
<field name="Title" type="strings">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="select">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</field>
如果我搜索 spiderman 这个词,我会得到15个结果。然而,当我搜索(标题:蜘蛛侠)时,我得到0结果。我需要能够在查询中执行子组,因此第一个选项不是一个选项。我错过了一些明显的东西吗?
同样搜索 SpiderMan 会返回15个结果,但即使使用模糊搜索和标题(Title:spiderman~)
,我也只能得到1个结果。
答案 0 :(得分:1)
在schema.xml文件中添加这些条目。 定义如下所示的fieldType:
<fieldType name="title" 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>
定义如下字段:
<field name="title" type="title" indexed="true" stored="true"/>