在Java中停止令牌过滤器以使用您的停用词的愿望

时间:2015-07-28 05:46:59

标签: java elasticsearch stop-words

我想在搜索项目中根据我的需要添加使用停用词。当我在java上工作时,我将需要java代码。经过大量搜索后,我找不到java中的代码来添加用户定义的停用词。我有这个代码。我尝试使用设置函数输入java代码,但无法达到结果。我错过了什么。我想帮助转换这个代码在java或一些帮助只是如何创建您的愿望的自定义​​分析器?

PUT /my_index
 {
    "settings": {
    "analysis": {
        "filter": {
            "my_stop": {
                "type":       "stop",
                "stopwords": ["what", "where", "was"]
            }
        }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

上述配置中缺少的是停止词应该在自定义分析器中定义(通过使用自定义过滤器,或者只是通过定义列表),然后必须将分析器应用于所需的字段(s)通过映射配置。

在自定义分析器中定义停用词:

PUT /my_index
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": { 
          "type": "standard", 
          "stopwords": [ "what", "where", "was" ] 
        }
      }
    }
  }
}

定义分析器后,您可以在映射中使用它,例如

PUT /my_index/_mapping/my_type
{
    "properties": {
        "my_field": {
            "type":      "string",
            "analyzer":  "my_analyzer"
        }
    }
}