java - java中的停止 token 过滤器以使用您想要的停止词

标签 java elasticsearch stop-words

我想在搜索项目中根据需要添加使用停用词。因为我正在研究java,所以我需要java代码。经过大量搜索后,我找不到 java 代码来添加用户定义的停用词。我得到了这个代码。我尝试使用设置功能输入java代码,但无法达到结果。我是不是错过了什么。我需要帮助将此代码转换为 java 或一些帮助只是如何创建您想要的自定义分析器?

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

最佳答案

上述配置中缺少的是,应在自定义分析器中定义停用词(通过使用自定义过滤器,或简单地通过定义列表),然后必须将分析器应用于所需的字段(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"
        }
    }
}

关于java - java中的停止 token 过滤器以使用您想要的停止词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31668240/

相关文章:

java - Hibernate hbm 文件中的过滤机制对于动态谓词不是很灵活

java - Android AlertDialog 不显示适配器名称

java - Elasticsearch 5 在长索引期间停止

SOLR 停用词 : words with 'of' give no results, 但是当 of 被排除时我们得到正确的结果

python - __init__() 获得意外的关键字参数 'stop_words'

java - 使用数组参数的参数化 JUnit 测试中的反射异常

java - $avg 未返回平均值

elasticsearch - 如何查询空字段或特定值

Elasticsearch 检查对象中是否存在键

elasticsearch - 使用elasticsearch在分析器中定义一个停用词表