【发布时间】:2017-02-11 05:34:43
【问题描述】:
我正在使用带有 elasticsearch-js npm 客户端库的 elasticsearch(来自 searchly 的托管实例)。我想从一个术语中搜索索引中的多个字段。这似乎有很多documentation,例如
GET /_search
{
"query": {
"bool": {
"should": [
{ "match": { "title": "War and Peace" }},
{ "match": { "author": "Leo Tolstoy" }}
]
}
}
}
我可以为作者和标题设置相同的值。但是,这是一个 get 请求,其结构与我正在执行此操作的 nodejs 库不同:
this._client.search({
index: 'sample',
body: {
query: {
match: {
name: 'toFind'
}
}
}
}).then(function (resp) {
var hits = resp.hits.hits;
}, function (err) {
console.trace(err.message);
});
我不能有多个 match: 字段,否则 tsc 会抱怨严格模式,如果我尝试类似:
query: {
match: {
name: 'toFind',
description: 'toFind'
}
}
然后我得到一个错误:
"type": "query_parsing_exception",
"reason": "[match] 查询以简化形式解析,具有直接字段名称,但包含的选项不仅仅是字段名称,可能使用其 \u0027options\u0027 形式,带有 \u0027query\u0027 元素?",
【问题讨论】:
标签: javascript node.js search elasticsearch