簡體   English   中英

如何在Elasticsearch中保存坐標以建立索引並在Kibana中使用它們

[英]How to save coordinates to index in Elasticsearch and use them in Kibana

我有這個DataFrame:

    Title   Authors               Institutions          
0   a      ['name_1', 'name_2']   [['Osaka Univ.', '34.82,135.52']] 
1   b      ['name_1']             [['Tohoku Univ.', '38.25,140.87'], ['Kobe Univ.', '34.72,135.23']]
2   c         …         
3   d         …             
4   e         …

我將其轉換為JSON文件:

df_output.to_json('output.json', orient='records', lines=True)

獲得:

{"Title": "a","Authors":["name_1", "name_2"],"Institutions":[["Osaka 
                                              University", "34.82,135.52"]]}
{"Title": "b","Authors":["name_1"],"Institutions":[['Tohoku Univ.', "38.25, 
                                   140.87"], ['Kobe Univ.', "34.72, 135.23"]]}              
...

因此,將此JSON索引到Elasticsearch中,然后按標題搜索它們。

import requests
import json
from elasticsearch import Elasticsearch

url= 'https://"""my_session_in_amazon""".amazonaws.com'
es = Elasticsearch([url])

filename = 'C:/xx/xxx/output.json'
data = [json.loads(line) for line in open(filename, 'r')]
helpers.bulk(es, data, index='title', doc_type='HEP_books')

但是在基巴納州,我不知道如何訪問機構坐標以繪制機構地圖

從您粘貼的示例數據框中,看起來“機構”是一個既包含機構名稱又包含其坐標的數組。 這將使得不可能在地圖上繪制這些坐標,因為elasticsearch動態映射會將“機構”視為字符串/關鍵字,而不是geo_point / number。

您需要的第一步是將坐標提取到專用字段,例如Institutions.geo。 您可以使用提取管道來提取它並修改文檔。

其次,您需要在Elasticsearch模板中為這些索引指定Institutions.geo(例如)是geo_point ,並為此數據創建一個新索引。

第三,在清除數據后,在單獨的專用字段中進行正確的映射,您需要刷新kibana中的字段列表,以便kibana能夠識別新的Institution.geo字段。

第四,在刷新kibana中的映射后,您可以繼續基於此數據創建新的Map可視化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM