我在创建多范围查询时遇到问题。
因此,我正在使用一个使用setQuery
函数创建查询的库,该函数接受一个对象。 Scroll down to setQuery
现在,我的函数现在创建一个范围查询,并且工作正常。我遵循了ES Docs,因此它与我当前编写的内容相符,即...
const queryObject = {
query: {
range: {
[searchType]: {
gte: from,
lte: to,
boost: 2.0,
},
},
},
value: queryItem,
};
但是我似乎找不到任何形状相似的多个范围的文档。 有关如何处理此问题的任何建议?
谢谢!
答案 0 :(得分:1)
做到了! 所以说我有一个范围数组
const sampleRanges = [{from: 1990, to: 1992}, {from: 1993, to: 1995}, {from: 1996, to: 2002}]
我创建了一个函数来映射这些值,所以...
const generateRangeQuery = () => {
return sampleRanges.map(value => ({
range: {
[searchType]: {
gte: value.from,
lte: value.to,
boost: 2.0,
},
},
}));
};
然后,多范围查询应如下所示:
const query = {
query: {
bool: {
should: generateRangeQuery(),
minimum_should_match: 1,
boost: 1.0,
},
},
};
这对我有用!