我用过match_phrase_prefix。如果我通过输入一些字符进行搜索,它将提供结果,但是当我在搜索字段中添加更多字符时,查询将返回零命中。
例如:如果我输入abcd
,它将返回match。
但是,如果我输入abcd e
,那么即使有匹配项,我也不会获得成功。
以下是我使用过的查询
此处_field
:是文件名,
_queryText
:是我输入的搜索字段值。
如果可以,我是否可以在此处使用必须或应该满足的条件或最小值,然后如何? 预先感谢
{
body: {
'query': {
'match_phrase_prefix': {
[_field]: _queryText
},
},
'size': 15,
}
}
答案 0 :(得分:2)
Match_phrase_prefix与match_phrase相同,只是它允许在文本的最后一项上进行前缀匹配。
在您的情况下,当您搜索abcd
作为搜索查询中的唯一术语时,它将进行前缀查询和包含abcd
,abcde
,{{1 }}将全部匹配。
但是,一旦您将搜索查询更改为abcdef
,它就会有两个单词abcd e
和abcd
。它将在e
上进行匹配查询,并在abcd
上进行前缀查询,因此包含e
后跟abcd
或e
或ef
的文档将匹配。
最好提供示例文档,这样我才能更好地解释应该匹配的内容,不应该匹配的内容以及其背后的原因。