我的停用词不按预期工作。 这里是我的架构的一部分:Solr无用词魔术
<fieldType name="text_general" class="solr.TextField">
<analyzer type="index">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.KeywordTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType class="solr.TextField" name="text_auto">
<analyzer type="index">
<charFilter class="solr.HTMLStripCharFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<filter class="solr.ShingleFilterFactory" maxShingleSize="3" outputUnigrams="true" outputUnigramsIfNoShingles="false"/>
</analyzer>
<analyzer type="query">
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="false"/>
</analyzer>
</fieldType>
<field name="deal_title_terms" type="text_auto" indexed="true" stored="false" required="false" multiValued="true"/>
<field name="deal_description" type="text_general" indexed="true" stored="true" required="false" multiValued="false"/>
在stopWords.txt中,我接下来的话:在,是一个;
我也有我的领域下一个数据:
deal_description - 这是我的描述
deal_title_terms - 这是处理标题条款(将在条款分裂)
当我尝试搜索deal_description :
例1:“deal_description:他是第m” - 我希望这份文件与deal_description“这是我的描述”将返回
例2:“deal_description:是个” - 我希望不hing会被发现,因为“is”和“the”是停用词。
当我尝试搜索deal_title_terms:
例1:“deal_title_terms:为” - 我想,没有什么会被发现,因为“是”是停用词。
示例2:“deal_title_terms:是交易” - 我预计“is”和“the”将被忽略,术语“deal”将被找到。
示例3:“deal_title_terms:标题条款” - 我预计“a”将被忽略,术语“标题词”将被找到。
问题1:为什么停用词不适用于“deal_description”字段?
问题2:为什么现场“deal_title_terms”禁用词对我的查询不会被删除(当我试图找到标题条款它不会找到“称号条款”一词)
问题3:有什么办法在搜索结果中显示停用词,但阻止他们搜索?例如:
数据:这是很酷的搜索引擎
搜索查询: “为COO” - >回报 “这是酷搜索引擎”
搜索查询: “是” - >返回任何
搜索查询:“这科尔” - >回报“这是酷搜索引擎”
问题4:在哪里可以找到详细的描述(可能与示例)禁用词是如何工作的solr?因为它看起来很神奇。
要观察您的查询会发生什么,可以使用solr管理页面:http:// yourWebsite:8983/solr /#/ yourCore/analysis。把你的查询和clic分析值。 – alexf 2015-04-01 07:28:52
我正在使用这个工具。使用这个工具,我发现查询分析器从我的查询中删除了停用词,但是我仍然能够找到“the”,“is”等等。如果我的停用词仅用于查询分析器。 – 2015-04-01 07:37:28
你用来查询的字段是什么? – alexf 2015-04-01 07:46:40