Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Elasticsearch前缀匹配消失,但未添加(QueryString)_Javascript_<img Src="//i.stack.imgur.com/RUiNP.png" Height="16" Width="18" Alt="" Class="sponsor Tag Img">elasticsearch - Fatal编程技术网 elasticsearch,Javascript,elasticsearch" /> elasticsearch,Javascript,elasticsearch" />

Javascript Elasticsearch前缀匹配消失,但未添加(QueryString)

Javascript Elasticsearch前缀匹配消失,但未添加(QueryString),javascript,elasticsearch,Javascript,elasticsearch,从……结转过来的 我确定我不能部分匹配NOT查询,但我仍然希望部分匹配NOT查询。例如,我有这样一个查询:“blue wizard”NOT fire,前缀匹配。我有一些结果,其中包含文本蓝色向导,当我搜索“蓝色向导”时会显示,但当我添加不触发部分时,这些文本就会消失;这就好像NOT查询正在擦除部分匹配 这是发送给ES的查询结果: { “查询”:{ “布尔”:{ “应该”:[ { “查询字符串”:{ “字段”:[ “无提醒文本” ], “查询”:“\”蓝色精灵\“不开火”, “defaultOp

从……结转过来的

我确定我不能部分匹配NOT查询,但我仍然希望部分匹配NOT查询。例如,我有这样一个查询:
“blue wizard”NOT fire
,前缀匹配。我有一些结果,其中包含文本
蓝色向导
,当我搜索
“蓝色向导”
时会显示,但当我添加
不触发
部分时,这些文本就会消失;这就好像NOT查询正在擦除部分匹配

这是发送给ES的查询结果:

{
“查询”:{
“布尔”:{
“应该”:[
{
“查询字符串”:{
“字段”:[
“无提醒文本”
],
“查询”:“\”蓝色精灵\“不开火”,
“defaultOperator”:“或”
}
},
{
“多重匹配”:{
“查询”:“\”蓝色精灵\“不开火”,
“类型”:“短语前缀”,
“字段”:[
“无提醒文本”
]
}
}
]
}
}

}
为什么在一个查询中组合查询字符串和多个匹配会使测试查询变得更复杂

分开来看: 您的查询\u字符串子查询没有说明任何有关前缀的内容,因此它显然与“蓝色向导”不匹配(除非您使用词干或柠檬化过滤器,请参见下文)

多重匹配子查询的类型为“短语前缀”,但在(多重)匹配查询中不能使用NOT等运算符。 此查询解析为:给我所有包含

  • blue wizzard(不确定引号会发生什么情况,取决于您的分析器)
  • 后面跟着“不”这个词
  • 接着是以火开始的东西
这显然不是你想要的

我想你的实际问题是:“搜索‘向导’的人也应该找到复数‘向导’出现的文档”。 在这种情况下,您需要深入研究词干生成的主题。 这可能是一个很好的起点:
或者

我之所以将
查询字符串
多匹配
结合起来,是因为我想要我在OP中陈述的功能;能够使用部分匹配(搜索
wiz
,获取
向导
)以及能够在同一查询中使用NOT。我想要搜索的不仅仅是复数,我想要前缀匹配,所以我不确定词干是否是我想要的。