要索引数据,我们必须创建一个包含其他字段值的字段的文档。我们从多个表中获取数据。
表A
ID
命名
CREATE_DATE
UPDATE_DATE
出价
表B
投标
BNAME
标题
源
release_date
表C
CID
投标
FNAME
L-NAME
...
根据要求,所提交的所有权应具有其他领域的价值
Ex: - “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 :(得分:0)
您可以使用Elasticsearch映射中的title
功能将字段复制到copy_to
字段中:
将copy_to参数添加到任何字段映射将导致将此字段的所有值复制到参数中指定的字段。在以下示例中,字段title和abstract中的所有值都将复制到字段meta_data。
http://www.elastic.co/guide/en/elasticsearch/reference/current/mapping-core-types.html#copy-to
首先在Elasticsearch中创建一个带有mappping的索引。当updatedDate
文档被编入索引时,此映射正在将createdDate
,source
和title
复制到person
字段中。
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"
}
}
}