【发布时间】:2014-05-23 12:22:23
【问题描述】:
我在 Solr 中有一条代表公司的记录 - 公司名称位于名为“owner_name”的字段中,值为“something.net”。如果我对“owner_name:something”进行 Solr 查询,我不会得到任何结果,但如果我搜索“owner_name:something.net”,我会得到。
这是该字段使用的 fieldType 定义
<fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"
enablePositionIncrements="true"/>
<filter class="solr.WordDelimiterFilterFactory" preserveOriginal="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords_en.txt"
enablePositionIncrements="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPossessiveFilterFactory"/>
<filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
<filter class="solr.PorterStemFilterFactory"/>
</analyzer>
</fieldType>
我不明白为什么这没有在“某物”和“网络”上被标记化。我也希望“something.net”返回结果,但大多数人只会搜索“something”。
如何同时搜索“something”和“something.net”以返回此记录?
更新
我正在寻找的词实际上是“sawhorse.net”——我只是用“某物”来表示通用。我用字段分析器玩了更多,我看到sawhorse.net 正在扩展(见屏幕截图。)似乎最后词干分析器正在改变形式,但这发生在索引和查询上,所以我仍然不确定为什么它不起作用。以下是现场分析器的截图
【问题讨论】:
-
奇怪,根据您发布的屏幕截图,这应该会产生命中。如您所见,它略微呈灰色突出显示。
-
@cheffe - 对 - 我就是这么想的。 - 但我想通了。它们实际上存储为 SawHorse.net - 我没有意识到 H 是大写字母。请参阅下面的答案。
标签: solr