在query_string中使用elasticsearch时,我没有得到预期的结果 .
让我说我有一个头衔,'约翰韦恩去曼哈顿' . 我用'标准'分析器索引 Headers 字段,以下是我的查询 . 有或没有模糊指示符(〜)它将找不到任何东西,除非我有'john wayne'拼写正确 . 没有'john wane'或类似的结果 .
"query": {
"query_string": {
"fields": ["title^2"],
"query": "\"john wayne\"~1",
"default_operator": "AND",
"phrase_slop": 0,
"minimum_should_match": "100%"
}
}
我试图在波浪之后改变数字以增加虚弱,但仍然没有匹配 .
有任何想法吗?
1 回答
对短语进行模糊搜索实际上是“邻近”搜索 . 而不是测量字母之间的levenshtein距离,而是查询中的术语之间的接近度 .
如果是,您的查询应返回结果:
有关差异的更多信息,请参见此处:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#_fuzziness
编辑:
这是一个具体的娱乐示例:
创建一些文档
示例天真查询,非短语:
如何使用span执行短语查询 . 请注意,术语是较低的,因为术语查询未被分析 . 此外,您可以调整 Span 斜率以控制每个术语应该彼此接近的程度 .
现在,这是您正在寻找的真正的交易 .