用query_string查询时,fuzzy number 或 fuzzy AUTO 是什么意思?
When querying with query_string what does fuzzy number or fuzzy AUTO means?
我阅读了文档
(https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html)
还是不明白下面的例子:
GET /_search
{
"query": {
"bool": {
"must": [{
"query_string": {
"query": "1~central OR 0~park",
"default_field": "content"
}},
{"query_string": {
"query": "park~AUTO",
"quote_field_suffix": ".exact",
"fields": ["content"]
}}]
}}}
第一个query_string
:
我不确定我是否理解 1~
的含义?
我阅读了 Damerau–Levenshtein distance
,但仍然不确定我是否正确理解它:
1.1 ~
前面的数字是什么意思? (1~, 0~, 2~)...?
1.2 如果索引包含:Central
or cntrl
or center
or Central
,查询是否找到带有“1~central”的结果?
第二个query_string
AUTO 是什么意思? (停车~自动)
要将模糊搜索与 query_string
一起应用,您需要将 "query": "1~central OR 0~park"
替换为 "query": "central~1 OR park~0"
。
首先是搜索词,后面可以使用模糊运算符(~),实现模糊.
参考这部分documentation
查询字符串和模糊参数使用 Damerau-Levenshtein 距离来查找术语。
cntrl~1
表示搜索词将匹配包含 central
的原始文档,仅当编辑距离等于 1.
这里的编辑距离是指搜索词会匹配原词,增删改写一次,即1步恢复原词。
例如:
原词是central
cntrl
-> centrl
-> central
(2 个步骤,所以这与 (~1))
不匹配
centrl
-> central
(1 步所以这将匹配 (~1))
并且在AUTO
的情况下,应用以下rule
Generates an edit distance based on the length of the term. Low and high distance arguments may be optionally provided AUTO:[low],[high]. If not specified, the default values are 3 and 6, equivalent to AUTO:3,6 that make for lengths:
0..2 Must match exactly
3..5 One edit allowed
5 Two edits allowed
我阅读了文档 (https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html) 还是不明白下面的例子:
GET /_search
{
"query": {
"bool": {
"must": [{
"query_string": {
"query": "1~central OR 0~park",
"default_field": "content"
}},
{"query_string": {
"query": "park~AUTO",
"quote_field_suffix": ".exact",
"fields": ["content"]
}}]
}}}
第一个
query_string
: 我不确定我是否理解1~
的含义? 我阅读了Damerau–Levenshtein distance
,但仍然不确定我是否正确理解它:1.1
~
前面的数字是什么意思? (1~, 0~, 2~)...?1.2 如果索引包含:
Central
orcntrl
orcenter
orCentral
,查询是否找到带有“1~central”的结果?第二个
query_string
AUTO 是什么意思? (停车~自动)
要将模糊搜索与 query_string
一起应用,您需要将 "query": "1~central OR 0~park"
替换为 "query": "central~1 OR park~0"
。
首先是搜索词,后面可以使用模糊运算符(~),实现模糊.
参考这部分documentation
查询字符串和模糊参数使用 Damerau-Levenshtein 距离来查找术语。
cntrl~1
表示搜索词将匹配包含 central
的原始文档,仅当编辑距离等于 1.
这里的编辑距离是指搜索词会匹配原词,增删改写一次,即1步恢复原词。
例如:
原词是central
cntrl
-> centrl
-> central
(2 个步骤,所以这与 (~1))
centrl
-> central
(1 步所以这将匹配 (~1))
并且在AUTO
的情况下,应用以下rule
Generates an edit distance based on the length of the term. Low and high distance arguments may be optionally provided AUTO:[low],[high]. If not specified, the default values are 3 and 6, equivalent to AUTO:3,6 that make for lengths:
0..2 Must match exactly
3..5 One edit allowed
5 Two edits allowed