我有三个问题。
首先,我想知道是否可以使用单个查询将mtermvectors查询结果保存回新索引。
其次,如果第一个问题没问题,我想知道在保存结果时是否可以将当前格式更改为嵌套数据类型。
最后,我想知道我是否可以同时进行聚合。 有可能吗?
现在,我的代码在这里。
<pre>
GET /_mtermvectors?pretty=true
{
"docs":[
{ "_index": "test",
"_type": "type1",
"_id": "2",
"fields":["contents"],
"offsets":false,
"payloads":false,
"positions":false,
"term_statistics": true,
"field_statistics":true,
"filter":{
"min_term_freq":1,
"max_doc_freq": 3
} },
{ "_index": "test",
"_type": "type1",
"_id": "1",
"fields":["contents"],
"offsets":false,
"payloads":false,
"positions":false,
"term_statistics": true,
"field_statistics":true,
"filter":{
"min_term_freq":1,
"max_doc_freq": 3
}
} ] }
PUT /new_index
{
"mappings": {
"word": {
"properties": {
"termsarray": {
"type": "nested",
"properties": {
"form": {
"type":"text",
"fielddata": true
}
}
}
}
}
}
}
GET new_index/_search
{
"aggs" : {
"termsarray" : {
"nested" : {
"path" : "termsarray"
},
"aggs" : {
"word" : {
"terms" : {
"field" : "termsarray.form",
"order" : { "sum_score" : "desc" }
},
"aggs" : {
"sum_score" : { "sum" : { "field" : "termsarray.score" }}
}
}
}
}
}
}
答案 0 :(得分:0)
基于this post on ES forum,无法将查询结果直接存储回ES作为新索引。您必须将数据提取到客户端并自己将它们推送到新索引中。
答案 1 :(得分:0)
使用LogStash,您可以将elasticsearch查询结果存储到新索引或现有索引中:
您必须结合使用elasticsearch输入
https://www.elastic.co/guide/en/logstash/current/plugins-inputs-elasticsearch.html
和弹性搜索输出
https://www.elastic.co/guide/en/logstash/current/plugins-outputs-elasticsearch.html