Solr - 仅匹配精确短语

时间:2012-02-21 23:07:57

标签: solr lucene solandra

我的短语查询有问题。

查询输入:“到很多结果”

我想只包含包含完全匹配短语的文字:

  1. “单词单词到很多结果单词单词”

  2. “单词到很多结果单词”

  3. 但问题是:

    1. “单词单词到很多结果单词单词”

    2. “单词到很多结果单词”

    3. “word 许多结果字” - 我不希望在我的搜索结果中

    4. 架构:

      <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>
      

      感谢您的帮助

1 个答案:

答案 0 :(得分:2)

如果您需要按相同顺序进行完全匹配的词组匹配,则需要以短语形式传递查询,例如“to many results”。
这将返回完全匹配的结果和所有单词。

如果查询不是短语查询并且只需要所有单词存在,则搜索将在某些位置查找文档中的单词(取决于slop的定义),默认搜索运算符默认为OR。 / p>

如果您使用dismaxquery slopqfMinimum match (mm)的控制,则需要在文档中显示的条款数量为结果归还。

如果您使用standard request handler,则需要查看Query parser default operator

http://wiki.apache.org/solr/SchemaXml#Default_query_parser_operator