请教一个关于ES的临近检索的问题:
现有如下检索需求
英文检索,一句话内如 a computer system 中,要求a 和 computer 间最多不超过2个单词,computer和system中最多不超过3个单词,a computer system 位置顺序不能变
因为顺序的要求,当前采用的是query_string的phrasequery,如下
{
"query": {
"bool": {
"must": {
"query_string": {
"query": "(TI:(\"a computer system\"))",
}
}
}
}
}
了解到es的邻近检索只能用在两个元素之间如 TI:("a computer"~2),像我这种需要在一句话中用到多个邻近的该怎么做呢?
注:①TI:("a computer system"~5) 将邻近数值累加的方法并不准确
②TI:("a computer"~2) AND TI:("computer system"~3)也不合理,如 computer system a computer也会命中
现有如下检索需求
英文检索,一句话内如 a computer system 中,要求a 和 computer 间最多不超过2个单词,computer和system中最多不超过3个单词,a computer system 位置顺序不能变
因为顺序的要求,当前采用的是query_string的phrasequery,如下
{
"query": {
"bool": {
"must": {
"query_string": {
"query": "(TI:(\"a computer system\"))",
}
}
}
}
}
了解到es的邻近检索只能用在两个元素之间如 TI:("a computer"~2),像我这种需要在一句话中用到多个邻近的该怎么做呢?
注:①TI:("a computer system"~5) 将邻近数值累加的方法并不准确
②TI:("a computer"~2) AND TI:("computer system"~3)也不合理,如 computer system a computer也会命中
2 个回复
envy666
赞同来自:
LG_ES
赞同来自: