我的短语查询有问题。
查询输入:“到很多结果”
我想只包含包含完全匹配短语的文字:
“单词单词到很多结果单词单词”
“单词到很多结果单词”
但问题是:
“单词单词到很多结果单词单词”
“单词到很多结果单词”
“word 许多结果字” - 我不希望在我的搜索结果中
架构:
<fieldType name="text" class="solr.TextField" termVectors="true" termPositions="true" termOffsets="true" autoGeneratePhraseQueries="true">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.TrimFilterFactory" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.ReversedWildcardFilterFactory" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.StandardTokenizerFactory" />
<filter class="solr.TrimFilterFactory" />
<filter class="solr.LowerCaseFilterFactory" />
</analyzer>
感谢您的帮助
答案 0 :(得分:2)
如果您需要按相同顺序进行完全匹配的词组匹配,则需要以短语形式传递查询,例如“to many results”。
这将返回完全匹配的结果和所有单词。
如果查询不是短语查询并且只需要所有单词存在,则搜索将在某些位置查找文档中的单词(取决于slop的定义),默认搜索运算符默认为OR。 / p>
如果您使用dismax,query slop对qf和Minimum match (mm)的控制,则需要在文档中显示的条款数量为结果归还。
如果您使用standard request handler,则需要查看Query parser default operator。
http://wiki.apache.org/solr/SchemaXml#Default_query_parser_operator