2015-03-19 136 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

相关问题