【问题标题】:How to Get Field Name Given Value in ElasticSearch如何在 ElasticSearch 中获取给定值的字段名称
【发布时间】:2015-05-01 02:23:41
【问题描述】:

假设我的颜色索引中有以下内容:

{
     "primary_colours": ["Red", "Yellow", "Blue"],
     "secondary_colours": ["Green", "Orange", "Purple"],
     "complex_colours": ["Amber", "Apricot", "Aqua", "Olive"]
}

我想要实现的是通过在所有字段中搜索来找到字段名称。换句话说:给定一个查询,我不知道应该在哪个字段中找到查询。

curl -XPOST 'localhost:9200/colours/_search?pretty' -d '
     {"query": 
          {"match": {"_all": "Aqua"} } 
     }'

在命中的 _source 部分,我希望 elasticsearch 告诉我哪个字段具有值,而不仅仅是返回整个文档。

任何解决此问题的帮助将不胜感激。

【问题讨论】:

  • 或许您可以使用highlighting 作为解决方法?
  • @keety 非常感谢您的评论突出作品!!!

标签: elasticsearch


【解决方案1】:

我不确定您的文档结构是否适合您的查询。如果不知道您将需要使用哪些其他查询,很难提出更好的结构,但听起来“颜色类型”可以是bucketed aggregation。有了这个,你可以用一个分面来索引每种颜色,说明你想要查找的颜色类型。就像我说的那样,如果不了解您希望运行的查询的更多信息,很难知道哪种结构最有效。

【讨论】:

  • keety 上面的评论解决了这个问题。非常感谢您花时间回答我的问题。
猜你喜欢
  • 2013-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 2015-04-14
  • 1970-01-01
相关资源
最近更新 更多