使用python_dsl在elasticsearch中查询Array数据类型

时间:2017-09-04 12:41:25

标签: python elasticsearch elasticsearch-dsl

查询对整数数组数据类型有多复杂?这是我在python中的类,用于将数据注入elasticsearch

class Paragraph(DocType):
    body = Text(analyzer="standard")
    published_from = Date()
    lines = Integer()
    n_paragraph = Integer()
    capture = Integer()

    class Meta:
        index = "my_index"

    def save(self, **kwargs):
        self.lines = len(self.body.split())
        return super(Paragraph, self).save(**kwargs)

我在捕获中注入一个整数数组。这是有趣的路线:

paragraph.capture = [1, 0, 5, 7]
  1. 我设法查询列表中是否有数字:: cnx = Search().using(client) s = cnx.query("match", capture=5)

  2. 因为@Val说我们可以添加另一个包含总和的字段来查询总和

  3. 如何查询特定索引,例如paragraph.capture[1] >= 1

    我们看到Elasticsearch query on array index是相关的,但我无法建立链接。

1 个答案:

答案 0 :(得分:1)

查询总和的最佳方法是添加另一个包含该字段的字段,这样您就不必在搜索时运行代价高昂的script查询。

使用range字段上的正常capture查询,可以查询是否至少有一个数字优于4。