这直接来自elasticsearch documentation.
client.search({
index: 'myindex',
body: {
query: {
match: {
title: 'test'
}
}
}
}, function (error, response) {
// ...
});
我想要达到的目标是相同的但是搜索多个标题。
等同于if title in ['title1', 'title2', 'title3']
但是title: ['title1', 'title2', 'title3']
会将错误作为查询字符串。
还有另一个建议使用过滤器,但它似乎没有任何影响。任何建议都将不胜感激。
答案 0 :(得分:1)
正确的方法是将所有标题值附加到查询字符串中,因为它将被分析,因此title
字段将与每个标记匹配。
client.search({
index: 'myindex',
body: {
query: {
match: {
title: 'title1 title2 title3'
}
}
}
}, function (error, response) {
// ...
});
<强>更新强>
如果您搜索未分析的值,则应该更喜欢terms
查询:
client.search({
index: 'myindex',
body: {
query: {
terms: {
title: ['title1', 'title2', 'title3']
}
}
}
}, function (error, response) {
// ...
});