elasticsearch - ElasticSearch 5.2用空格分隔句子

标签 elasticsearch

我有以下字符串:

"hello world"
"hello"
"hello world all"

我的映射看起来像这样
...
"properties": {
  "my_field": {
    "type": "string",
    "index": "not_analyzed"
  }
}
...

当我尝试使用simple_query_string进行搜索时:
{
  "query": {
    "simple_query_string" : {
        "query": "hello"
    }
  }
}

我得到了所有三个字符串。

问题是我只需要一个与“hello”相关联的字符串。

最佳答案

使用 term query获得完全匹配

{
  "query": {
    "term" : {
        "my_field": "hello"
    }
  }
}

请注意,在ES 5中,您可以通过指定keyword类型来简化映射
"properties": {
  "my_field": {
    "type": "keyword"
  }
}

关于elasticsearch - ElasticSearch 5.2用空格分隔句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42578285/

相关文章:

python - elasticsearch批量方法失败,并带有字母数字ID

docker - 在docker-compose期间,Kibana数据已丢失

ruby-on-rails - 几个非常具体的elasticsearch问题

lucene - 使用 'whitespace' 分析器创建索引

elasticsearch - 为什么对于不同索引的相同查询,elasticsearch 返回的结果差异很大?

elasticsearch - 如何使用更新 API 更新 Elastic search 中的子文档?

elasticsearch - ElasticSearch:嵌套字段和聚合

performance - 搜索响应时间不稳定地翻了一番

elasticsearch - 对TOP聚合进行过滤-Elasticsearch 5.6

php - Elasticsearch AND/BOOL 条件 + PHP