我正在尝试获取IP范围查询以处理一组文档,但是没有任何结果。
映射(我已经尝试了analyzed
和not_analyzed
):
"mappings": {
"addy": {
"properties": {
"add": {
"type": "ip",
"not_analyzed":"true"
}
}
}
}
数据看起来像这样(许多实例的值都不同)
"_source": {
"add": "192.168.1.15"
}
现在,我去看了官方的ES文档,但是没有IP范围示例,但是我在Git上找到了一个不起作用的示例。它看起来如下:
"query": {
"query_string": {
"default_field": "add",
"query": "add:[192.168.1.5 TO 192.168.1.15]"
}
}
当我用手指指住字段和地址时,上面的方法引发了一些令人鼓舞的解析错误,但最终没有返回结果。
我还尝试了标准范围语法:
"filter": {
"range": {
"add": {
"from": "192.168.1.5",
"to": "192.168.1.25"
}
}
}
这也没有返回结果。如何查询一系列IP地址?
该ip
类型不需要任何not_analyzed
设置,仅适用于字符串字段。无论如何,我已经能够像这样重新创建索引:
curl -XPUT localhost:9200/addies -d '{
"mappings": {
"addy": {
"properties":{
"add": { "type": "ip"}
}
}
}
}'
然后,我创建了几个示例文档,如下所示:
curl -XPUT localhost:9200/addies/addy/1 -d '{"add": "192.168.1.100"}'
curl -XPUT localhost:9200/addies/addy/2 -d '{"add": "192.168.1.101"}'
curl -XPUT localhost:9200/addies/addy/3 -d '{"add": "192.168.1.102"}'
curl -XPUT localhost:9200/addies/addy/4 -d '{"add": "192.168.1.110"}'
最后,使用query_string
查询,我只能像这样检索前三个文档:
curl -XPOST localhost:9200/addies/addy/_search -d '{
"query": {
"query_string": {
"query": "add:[192.168.1.100 TO 192.168.1.102]"
}
}
}'
更新:
请注意,以下range
查询也可以正常工作并返回相同的结果:
curl -XPOST localhost:9200/addies/addy/_search -d '{
"query": {
"range": {
"add": {
"gte": "192.168.1.100",
"lte": "192.168.1.102"
}
}
}
}'
问题内容: 我想查询日期范围内的elasticsearch文档。我现在有两个选择,两个都适合我。已经测试了他们两个。1.范围查询2.范围过滤器 由于我现在的数据集很小,因此无法测试它们的性能。两者有什么区别?哪个会导致更快地检索文档和更快地响应? 问题答案: 查询和过滤器之间的主要区别在于评分。查询将返回每个文档具有相对排名得分的文档。过滤器没有。这种差异使过滤器更快,有两个原因。首先,它不会产生
问题内容: **如果要基于SellerInfoES的嵌套要约价格数组(嵌套数组)对象,我正在尝试汇总和查找价格范围。内部字段是“ offerPrice”。我如何在Elasticsearch中的嵌套数组字段上编写聚合。我尝试了以下查询,但无法正常工作。收到此错误:解析失败[在[price_ranges]中找到了两个聚合类型定义:[嵌套]和[过滤器]] 对应: 查询: 问题答案: 您必须使用。在内部使
我对mongodb有意见。有人能解释一下为什么这样做(给出了一些结果): 这不起作用(返回零): 非常感谢。
问题内容: 我希望能够列出用户已添加的项目(他们被列为创建者)或已被批准的项目。 所以我基本上需要选择: 我将如何在Django中执行此操作?(最好使用过滤器或查询集)。 问题答案: 有些对象允许进行复杂的查找。例:
问题内容: 我在一个模型中有一个领域,例如: 现在,我需要按日期范围过滤对象。 如何过滤日期在和之间的所有对象? 问题答案: 用 或者,如果你只是想按月过滤:
问题内容: 我需要从Django模板中执行过滤查询,以获取与视图中的python代码等效的一组对象: 在我的模板中,我想做 但我似乎无法找出如何编写FILTER。 问题答案: 你不能这样做,这是设计使然。Django框架的作者打算将表示代码与数据逻辑严格分开。过滤模型是数据逻辑,而输出HTML是表示逻辑。 因此,你有几种选择。最简单的方法是进行过滤,然后将结果传递给。或者,你可以在模型中编写一个方