为什么我可以使用bool查询在弹性搜索中检索记录?

时间:2014-09-25 04:51:26

标签: elasticsearch

我在ElasticSearch中插入了一条记录,我可以在这里看到:
Elastic Search Bool Query

但是这个查询什么都不返回:

{
  "query": {
    "filtered": {
      "query": {
        "bool": {
          "must": {
            "term": {
              "name": "Ehsanl"
            }
          }
        }
      }
    }
  }
}

我使用post方法将此查询发布给此用户:http://127.0.0.1:9200/mydb/customers2/_search 这有什么问题?

2 个答案:

答案 0 :(得分:0)

尝试将名称命名为“ehsanl”。全部为小写。

答案 1 :(得分:0)

您在屏幕截图中看到的是原始文档(_source字段)。

但是,默认情况下,会分析字符串字段(有关分析的详细信息,请参阅此answer)。

使用standard分析器,您的名称值应该小写为ehsanl并以这种方式存储在索引中:term查询搜索中的确切值Ehsanl索引,它不存在。

你可以:

  • ehsanl值与term查询
  • 一起使用
  • 使用Ehsanl值和match查询,在搜索之前将使用相同的分析器。