Solr 结果没有预期的顺序
Solr result has not expected order
我有几个文件,有一个标题:
- -> "Just some Word 13 from year 2015"
- -> "Just some Word 13 from year 2011"
- -> "Just some Word 13 from year 2012"
- -> "Just some Word 13 from year 2014"
- -> "Just some Word 13 from year 2013"
当搜索 13 时,我希望第一个结果是 5,因为 13 存在两次。
字段是多值的="true"。
我的索引字段类型如下所示:
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[(")(,:;!?)]" replacement=""/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ReverseStringFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="30" side="front"/>
<filter class="solr.ReverseStringFilterFactory"/>
</analyzer>
这是因为文档 5 实际上没有两次 13
术语。您所拥有的 13
和 2013
对于搜索来说非常不同。在这种情况下,所有五个文档都只有一个 13
项,因此顺序没有错。如果你想要 solr 考虑 13
和 2013
相同的术语你可以使用同义词。所以把这一行放在你的 synonyms.txt
文件中:
13, 2013
并在您的 schema.xml
文件中包含此过滤器:
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
现在,当您搜索 13
时,文档 5 的相关性将高于其他文档。
solr copyfield 指令(使用和不使用 EdgeNGramFilterFactory 进行索引)是提高直接点击率的解决方案。
我有几个文件,有一个标题:
- -> "Just some Word 13 from year 2015"
- -> "Just some Word 13 from year 2011"
- -> "Just some Word 13 from year 2012"
- -> "Just some Word 13 from year 2014"
- -> "Just some Word 13 from year 2013"
当搜索 13 时,我希望第一个结果是 5,因为 13 存在两次。
字段是多值的="true"。
我的索引字段类型如下所示:
<analyzer type="index">
<charFilter class="solr.PatternReplaceCharFilterFactory" pattern="[(")(,:;!?)]" replacement=""/>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.ReverseStringFilterFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="30" side="front"/>
<filter class="solr.ReverseStringFilterFactory"/>
</analyzer>
这是因为文档 5 实际上没有两次 13
术语。您所拥有的 13
和 2013
对于搜索来说非常不同。在这种情况下,所有五个文档都只有一个 13
项,因此顺序没有错。如果你想要 solr 考虑 13
和 2013
相同的术语你可以使用同义词。所以把这一行放在你的 synonyms.txt
文件中:
13, 2013
并在您的 schema.xml
文件中包含此过滤器:
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
现在,当您搜索 13
时,文档 5 的相关性将高于其他文档。
solr copyfield 指令(使用和不使用 EdgeNGramFilterFactory 进行索引)是提高直接点击率的解决方案。