关于elasticsearch 5 exists query查询不出结果

elasticsearch 版本 : 5.5.2

保存的是文章信息 如下所示

  "_source" : {
      "page_url" : "http://cloud.zhiding.cn/2017/1117/3100736.shtml",
      "post_title" : " 新能源物流车装上传化造“智慧大脑” “慧联智控2.0”迭代上线 ",
      "text" : "杭州2017年11月17日电 /美通社/ -- 未来新能源物流车将装上一颗传化造的“大脑”,通过“高速计算的大脑”持续数据信息交换,控制各车辆间的精确工作,打造智慧车联

想要查询存在text字段的记录

{
    "query": { "exists" : {"field" : "text"} }
}

但是为什么却查不出记录来?

{
  "took" : 2,
  "timed_out" : false,
  "hits" : {
    "total" : 0,
    "max_score" : null,
    "hits" : [ ]
  }
}

但是查询其他字段可以

"query": { "exists" : {"field" : "page_url"} }

是因为text是保留关键字吗?

阅读 7.9k
2 个回答

通过mapping Api

curl -XGET 'localhost:9200/twitter/_mapping/_doc?pretty'

得知text字段并没有索引

 "text" : {
        "type" : "keyword",
        "index" : false,
        "doc_values" : false
      },

我这里是可以查出来的,你可以检查下你的query,或者查看elasticsearch中是否存在你保存的数据

clipboard.png

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进