elasticsearch - Elasticsearch 街道范围搜索

标签 elasticsearch search

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

  • 1604-1612 Calver大楼
  • 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
          }
        }
      }
    }
    

    关于elasticsearch - Elasticsearch 街道范围搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48716910/

    相关文章:

    elasticsearch - 使用 Elasticsearch 忽略前导零

    spring-boot - 如何在必须和必须 Elasticsearch bool 查询之间建立AND条件

    list - Haskell:根据第一个值在列表中查找元组的第二个值

    iphone - 我们可以在 Spotlight 搜索结果中为我们的应用程序设置优先级吗?

    algorithm - 双向 Dijkstra(或统一成本搜索)算法的停止条件

    elasticsearch - Elasticsearch未创建从Logstash输出文件接收的索引

    python - ElasticSearch 更新不是立即的,你如何等待 ElasticSearch 完成更新它的索引?

    java - 如何修复log4j中的 “NoSuchMethodError”错误

    php - 在文件夹/目录中搜索特定文件扩展名 (PHP)

    php - FOSElastica bundle : retrieving highlights for results