鍍金池/ 教程/ Java/ 在查詢中使用已索引的形狀
創(chuàng)建索引
文檔局部更新
映射
查詢與過(guò)濾條件的合并
取回階段
查詢地理形狀
相關(guān)性簡(jiǎn)介
動(dòng)態(tài)索引
處理沖突
geohash單元聚合器
主分片和復(fù)制分片如何交互
自定義分析器
下一步
過(guò)濾順序
空集群
數(shù)據(jù)吞吐
地理坐標(biāo)點(diǎn)
嵌套-映射
動(dòng)態(tài)映射
在查詢中使用已索引的形狀
局部更新文檔
包含,而不是相等
范圍
檢索文檔
映射及分析
結(jié)語(yǔ)
結(jié)構(gòu)化查詢 Query DSL
驗(yàn)證查詢
查找準(zhǔn)確值
Geohashes
結(jié)構(gòu)化搜索
復(fù)合核心字段類型
嵌套-集合
與Elasticsearch交互
請(qǐng)求體查詢
自定義動(dòng)態(tài)索引
簡(jiǎn)易搜索
索引一個(gè)文檔
地理形狀
緩存地理位置過(guò)濾器
多文檔模式
  • 1.
分布式搜索的執(zhí)行方式
安裝Elasticsearch
地理位置聚合
分析和分析器
元數(shù)據(jù):_all 字段
地理坐標(biāo)盒模型過(guò)濾器
類型和映射
合并段
查詢多個(gè)準(zhǔn)確值
嵌套-查詢
  • 1.
為什么是奇怪的格式?
Geohashes 映射
關(guān)于緩存
開始第一步
為了搜索,你懂的
分布式的特性
添加索引
確切值(Exact values) vs. 全文文本(Full text)
掃描和滾屏
相關(guān)性排序
教程小結(jié)
數(shù)據(jù)字段
增加故障轉(zhuǎn)移
按距離排序
索引管理
分布式文檔存儲(chǔ)
geohash單元過(guò)濾器
嵌套排序
檢索多個(gè)文檔
新建、索引和刪除文檔
Geohashes
檢索文檔
減少內(nèi)存占用
重新索引數(shù)據(jù)
檢索文檔
按距離聚合
什么是文檔?
繼續(xù)擴(kuò)展
集群健康
入門
映射(mapping)
近實(shí)時(shí)搜索
地理形狀的過(guò)濾與緩存
集群內(nèi)部工作方式
應(yīng)對(duì)故障
范圍(邊界)聚合器
分析
分頁(yè)
刪除文檔
倒排索引
索引地理形狀
嵌套-對(duì)象
  • 1.
橫向擴(kuò)展
查詢階段
元數(shù)據(jù):_source 字段
多索引和多類別
路由文檔到分片
索引設(shè)置
williamzhao
多值字段字符串排序
創(chuàng)建一個(gè)新文檔
配置分析器
地理形狀
更新整個(gè)文檔
面向文檔
處理 Null 值
映射地理形狀
使文本可以被搜索
索引別名和零停機(jī)時(shí)間
通過(guò)地理坐標(biāo)點(diǎn)過(guò)濾
地理距離過(guò)濾器
搜索——基本的工具
空搜索
搜索選項(xiàng)
更新時(shí)的批量操作
最重要的查詢過(guò)濾語(yǔ)句
結(jié)語(yǔ)
組合過(guò)濾
地理位置聚合
根對(duì)象
默認(rèn)映射
文檔 ID
持久化變更
檢查文檔是否存在
入門
地理坐標(biāo)點(diǎn)

在查詢中使用已索引的形狀

在查詢中使用已索引的形狀

對(duì)于那些經(jīng)常會(huì)在查詢中使用的形狀,可以把它們索引起來(lái)以便在查詢中可以方便地直接引用名字。 以之前的阿姆斯特丹中央為例,我們可以把它存儲(chǔ)為一個(gè)類型為 neighborhood 的文檔。

首先,我們仿照之前設(shè)置 landmark 時(shí)的方式建立一個(gè)映射:


PUT /attractions/_mapping/neighborhood
{
  "properties": {
    "name": {
      "type": "string"
    },
    "location": {
      "type": "geo_shape"
    }
  }
}

然后我們索引阿姆斯特丹中央對(duì)應(yīng)的形狀:


PUT /attractions/neighborhood/central_amsterdam
{
  "name" : "Central Amsterdam",
  "location" : {
      "type" : "polygon",
      "coordinates" : [[
        [4.88330,52.38617],
        [4.87463,52.37254],
        [4.87875,52.36369],
        [4.88939,52.35850],
        [4.89840,52.35755],
        [4.91909,52.36217],
        [4.92656,52.36594],
        [4.93368,52.36615],
        [4.93342,52.37275],
        [4.92690,52.37632],
        [4.88330,52.38617]
      ]]
  }
}

形狀索引好之后,我們就可以在查詢中通過(guò) index, typeid 來(lái)引用它了:


GET /attractions/landmark/_search
{
  "query": {
    "geo_shape": {
      "location": {
        "relation": "within",
        "indexed_shape": { <1>
          "index": "attractions",
          "type":  "neighborhood",
          "id":    "central_amsterdam",
          "path":  "location"
        }
      }
    }
  }
}

指定 `indexed_shape` 而不是 `shape`,Elasticesearch 就知道需要從指定的文檔和路徑檢索出對(duì)應(yīng)的形狀了。 阿姆斯特丹中央這個(gè)形狀沒有什么特別的。同樣地,我們也可以使用已經(jīng)索引好的阿姆斯特丹達(dá)姆廣場(chǎng)。 這個(gè)查詢查找出與阿姆斯特丹達(dá)姆廣場(chǎng)有交集的臨近點(diǎn): ```json GET /attractions/neighborhood/_search { "query": { "geo_shape": { "location": { "indexed_shape": { "index": "attractions", "type": "landmark", "id": "dam_square", "path": "location" } } } } } ```