Solr - 仅匹配精确的短语

标签 solr lucene solandra

我在短语查询方面遇到问题。

查询输入:“多个结果”

我只想得到包含完全匹配短语的文本:

  1. “单词单词单词多个结果单词单词单词”

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

但问题是:

  1. “单词单词单词多个结果单词单词单词”

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

  3. “单词许多结果单词” - 我不想在我的结果中出现这个

架构:

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

感谢帮助

最佳答案

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

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

如果您使用dismax ,其控制由query slop对于 qfMinimum match (mm) ,文档中需要出现的术语数量才能作为结果返回。

如果您使用standard request handler您需要检查 Query parser default operator .

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

关于Solr - 仅匹配精确的短语,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386765/

相关文章:

solr - 不同的页面到不同的 Nutch 核心(在同一域内)

solr - 使用 Solr ltr(学习排名)模块时如何使用用户点击来训练模型

java - 如何执行Solandra

solr - Cassandra 和SOLR?什么为前端读取查询提供了更好的性能?

solr - 自定义 Solr 函数查询

ubuntu - 在 Ubuntu 服务器上安装 DataStax Cassandra 不起作用

java - Solr Webapp 正则表达式搜索

java - 在lucene中搜索时需要创建term shingles

c# - 在 Web 应用程序中使用 IndexSearcher/IndexWriter 的 Lucene.net