arrays - Elasticsearch 数组查询/过滤

标签 arrays filter elasticsearch

我是第一次了解 Elasticsearch,并花了大约一天的时间来研究它。我们已经广泛使用 Lucene,并希望开始使用 ES。我正在寻找我们目前拥有的替代数据结构。

如果我运行 *match_all* 查询,这就是我现在得到的结果。我对这个结构很满意。

{
   "took": 2,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 22,
      "max_score": 1,
      "hits": [
         {
            "_index": "integration-test-static",
            "_type": "sport",
            "_id": "4d38e07b-f3d3-4af2-9221-60450b18264a",
            "_score": 1,
            "_source": {
               "Descriptions": [
                  {
                     "FeedSource": "dde58b3b-145b-4864-9f7c-43c64c2fe815",
                     "Value": "Football"
                  },
                  {
                     "FeedSource": "e4b9ad44-00d7-4216-adf5-3a37eafc4c93",
                     "Value": "Football"
                  }
               ],
               "Synonyms": [
                  "Football"
               ]
            }
         }
      ]
   }
}

我不明白的是如何编写一个查询来通过搜索同义词“Football”来拉回此文档。看起来应该很容易!

读完这篇文章后我得到了这种方法:http://gibrown.wordpress.com/2013/01/24/elasticsearch-five-things-i-was-doing-wrong/ 他提到在数组中存储多个字段。我意识到我的示例没有多个字段,但我们肯定会寻找可以满足它们的解决方案。

使用过滤器、bool things、term this 和 terms that 尝试了各种不同的查询,但没有返回。

最佳答案

您的搜索和映射是什么样的?

如果您让 Elasticsearch 生成映射,它将使用标准分析器来小写文本(并删除停用词)。

因此,Football 实际上将被索引为 footballterm 系列查询/过滤器不进行文本分析,因此 term:Football 将查找未建立索引的 Footballmatch 系列查询确实如此。

这是一个非常常见的问题,在我关于 Troubleshooting Elasticsearch searches, for Beginners 的文章中进行了相当广泛的讨论。 ,值得浏览一下。文本分析是搜索工作中非常重要的一部分,因此有 some more articles about也是如此。

关于arrays - Elasticsearch 数组查询/过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21913853/

相关文章:

java - 对 Jersey 客户端的 POST 请求无法解码包含空数组的 JSON 对象?

xml - Scala,在 XML 节点上组合过滤器

android - 类型安全 : Unchecked cast from Object to List<MyObject>

c# - 我需要使用 Linq 比较列表和数据表并过滤值

node.js - 带有 gzip header 的 Node JS ElasticSearch

c++ - 将 char[] 传递给另一个函数时出现奇怪的输出

arrays - 减去数组中指定索引处的元素

java - 二维阵列打印在一列错误

java - 如何使用Java客户端查询Elasticsearch中的多值数组字段?

elasticsearch - 编写Elasticsearch 2.1脚本没有这样的属性:doc