2015-03-19 133 views
0

要索引數據,我們必須創建具有其他字段的值的字段的文檔。我們從多個表中獲取數據。索引期間將一個字段的值複製到另一個字段

表A
ID
名稱
CREATE_DATE
UPDATE_DATE
出價

表B
出價
BNAME
標題

RELEASE_DATE

表C
CID
投標
FNAME
LNAME ...

根據要求標題申請應具備的其他申請

防爆值: - 「title」:[title,create_date,update_date,source]

請建議我們,它可能在彈性搜索或不。如果可能的話怎麼樣,因爲我們使用的是河流插件索引的數據

PUT /_river/person/_meta 
{ 
"type": "jdbc", 
"jdbc": { 
    "url": "jdbc:postgresql://localhost:5432/test", 
    "user": "postgres", 
    "password": "postgres", 
    "sql":" query to get data" 
    "index": "test_search", 
    "type": "person" 
}, 
"bulk_size" : 10000, 
"flush_interval" : "2m" 
    } 

感謝

我們將實現它

回答

0

您可以在Elasticsearch映射覆制使用copy_to功能領域到title領域:

將copy_to參數添加到任何字段映射將導致將該字段的所有值複製到參數中指定的字段。在以下示例中,字段title和摘要中的所有值都將被複制到字段meta_data。

http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-core-types.html#copy-to

首先創建與Elasticsearch一個mappping的索引。當索引person文檔時,此映射將updatedDate,createdDatesource複製到title字段中。

POST /demo 
{ 
    "mappings": { 
     "person": { 
      "properties": { 
       "title": { 
        "type": "string" 
       }, 
       "createdDate": { 
        "type": "string", 
        "copy_to": "title" 
       }, 
       "updatedDate": { 
        "type": "string", 
        "copy_to": "title" 
       }, 
       "source": { 
        "type": "string", 
        "copy_to": "title" 
       } 
      } 
     } 
    } 
} 

現在索引文件(你的河水將索引文件,而是要測試這種方法,您可以手動索引文件):

POST /demo/person/1 
{ 
    "title": "test title", 
    "updatedDate": "2011-09-30", 
    "createdDate": "2011-09-30", 
    "source": "person source" 
} 

如果您在title字段中搜索的一個值source場,將會有一場比賽。

POST /demo/person/_search 
{ 
    "query": { 
     "match": { 
      "title": "person" 
     } 
    } 
} 
+0

我對彈性搜索沒有太多的知識,所以在基於河流的查詢中添加copy_to參數。請幫助我 – Rajesh 2015-03-19 09:32:53

+0

這很有幫助,謝謝 – Rajesh 2015-03-19 11:42:52

相關問題