当前位置: 首页 > 面试题库 >

elasticsearch街道范围搜索

李昱
2023-03-14
问题内容

在elasticsearch中,我们有两个字段:街道编号1和街道编号2。我们在Elastic
Search中还有一个Address字段,而Address是2个字段与其他一些字段的组合。因此,我们的地址为:

  • 1604-1612卡尔弗大厦
  • 1608- 1645公园别墅

如果用户使用1610搜索,则应同时返回该地址。

有关如何形成查询的任何帮助?


问题答案:

想法是利用range数据类型并将最小和最大街道号存储在该字段中。

在映射中,您将具有以下内容:

PUT property_index
{
  "mappings": {
    "_doc": {
      "properties": {
        "street_number_range": {
          "type": "integer_range"
        },
        "street_name": {
          "type": "text"
        }
      }
    }
  }
}

然后,您可以像这样添加两个文档:

PUT property_index/_doc/1
{
  "street_number_range" : { 
    "gte" : 1604,
    "lte" : 1612
  },
  "street_name": "Calver Building"
}

PUT property_index/_doc/2
{
  "street_number_range" : { 
    "gte" : 1608,
    "lte" : 1645
  },
  "street_name": "Park House"
}

最后,您的查询将如下所示,并且将返回两个文档

GET property_index/_search
{
  "query" : {
    "term" : {
      "street_number_range" : {
        "value": 1610
      }
    }
  }
}

更新

您还可以使用以下查询搜索范围:

GET property_index/_search
{
  "query" : {
    "range" : {
      "street_number_range" : {
        "gte": 1600,
        "lte": 1650
      }
    }
  }
}


 类似资料:
  • 本文向大家介绍solr范围搜索,包括了solr范围搜索的使用技巧和注意事项,需要的朋友参考一下 示例 age:[50 TO 60] 匹配年龄在50和60之间(包括50和60)的文档 age:{50 TO 60} 匹配年龄在50到60之间(不包括50到60)的文档 age:[* TO 60] 匹配年龄小于或等于60的文档 age:[50 TO *] 匹配年龄大于或等于50的文档 age:{50 to

  • 问题内容: 我正在尝试将范围查询与elasticsearch一起使用 但是弹性返回没有结果。我发现系统存在字符串包含或问题 这是该字段的映射: 问题答案:

  • 问题内容: 我在elasticsearch中存储以下信息: 假设我还有另一个日期范围(例如,从用户输入中得出),我想搜索一个相交的时间范围。与此类似:确定两个日期范围是否重叠这概述了以下逻辑: 但是我不确定如何将其放入elasticsearch查询中,我会使用范围过滤器并且仅将“ to”值设置为,而将from留为空白吗?还是有一种更有效的方法? 问题答案: 更新:现在可以使用在elasticsea

  • 是否可以在elasticsearch中更改范围聚合结果的排序?我在elasticsearch中有一个键控范围查询,并希望根据键而不是doc_count进行排序。 我的文件是: 和聚合查询: 此查询的结果是: 我想根据关键字对结果进行排序,而不是根据范围值。根据elasticsearch文档,无法指定排序顺序,当指定排序顺序时,我得到以下异常: 你有什么办法吗?谢谢!

  • 问题内容: 我凝视着监视器已经太久了,不要问:我如何使用 Elastic Search PHP库* 执行 多个范围查询 ? * 我正在尝试根据 价格 标准(小于或大于)和类别内的 产品数量 (最少2个产品,仅2个产品,等等)查询我的索引。 虽然单独工作正常,但结合 我正在努力找到一个不错的近期示例,该示例涵盖ES v0.9之后的此场景,但在我的v1.4.2上却失败了。 问题答案: 您的回答是正确的

  • 我试图构造一个ElasticSearch查询,但没有得到预期的结果。任何帮助都将不胜感激! 映射详细信息: null null 目前,每个嵌套的轮班文档都包含一个嵌套的calendarBlock文档,其中包含开始和结束日期时间字段,以及一个可以注册该轮班的最大志愿者人数字段。 查询 我试图构造的查询是经过筛选的查询。从Web上的窗体传入查询字符串。然后,我需要以编程方式将至少三个筛选器附加到这个查