Elasticsearch:如何限制雪球分析仪

时间:2014-07-28 15:16:38

标签: elasticsearch analyzer

使用雪球分析仪,我得到了“房子”的结果。当我查询'住房'。我想要分析器进行大多数搜索,但在这种情况下,返回是无关紧要的。我如何限制分析仪为这些情况考虑的工作?

1 个答案:

答案 0 :(得分:1)

您可以通过keyword_marker和stem_exclusion过滤器执行此操作:

  

防止词干

     

语言分析器的stem_exclusion参数(请参阅配置   语言分析器)允许我们指定应该的单词列表   不被阻止。在内部,这些语言分析器使用   keyword_marker令牌过滤器将列出的单词标记为关键字,   这可以防止后续的词干标记过滤器触及它们   词语的

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/controlling-stemming.html

  

在文件中指定关键字

     

虽然语言分析器只允许我们指定一个数组   stem_exclusion参数中的单词,keyword_marker标记过滤器   还接受一个keywords_path参数,允许我们存储所有   我们在文件中的关键字。该文件每行应包含一个单词,和   必须存在于群集中的每个节点上。请参阅更新停用词   有关如何更新此文件的提示。

此示例(来自文档)显示了如何实现此目的:

PUT /my_index
{
  "settings": {
    "analysis": {
      "filter": {
        "no_stem": {
          "type": "keyword_marker",
          "keywords": [ "skies" ] 
        }
      },
      "analyzer": {
        "my_english": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "no_stem",
            "porter_stem"
          ]
        }
      }
    }
  }
}

根据您现有的分析仪设置,具体情况会有所不同,但这应该可以帮助您。