elasticsearch Elasticsearch-使用analyzer进行span_近距离查询,elasticsearch,search,elasticsearch,Search" /> elasticsearch Elasticsearch-使用analyzer进行span_近距离查询,elasticsearch,search,elasticsearch,Search" />

elasticsearch Elasticsearch-使用analyzer进行span_近距离查询

elasticsearch Elasticsearch-使用analyzer进行span_近距离查询,elasticsearch,search,elasticsearch,Search,我需要帮助理解Elasticsearch行为,同时在某些文本字段中搜索单词。我有一个文本字段“description”,其映射如下所示: description: { type: "text" analyzer: "lower_ascii" fielddata: true } 'query': { 'span_near': { 'clauses': { {'span_term': {'descrip

我需要帮助理解Elasticsearch行为,同时在某些文本字段中搜索单词。我有一个文本字段“description”,其映射如下所示:

description: {
    type: "text"
    analyzer: "lower_ascii"
    fielddata: true
}
'query': {
        'span_near': {
            'clauses': {
                {'span_term': {'description' => 'aaa'}},
                {'span_term': {'description' => 'zzz'}}
            },
            "slop": 50,
            "in_order": FALSE
        }
    }
具有以下设置:

lower_ascii: {
    filter: [
        "lowercase",
        "asciifolding"
    ],
    type: "custom"
    tokenizer: "standard"
}
因此,它由标准标记器标记,并修改为较低的ascii。 如果该字段包含文本,例如“XXX YYY”,则会创建类似“aaa”、“XXX”、“YYY”、“zzz”的标记。 然后,如果我想搜索字段中包含所有单词“aaa zzz”的文档,它不适用于匹配或匹配阶段查询。因此,我发现span\u near查询似乎工作正常,但它没有对搜索值应用较低的ascii分析器。 我的查询如下所示:

description: {
    type: "text"
    analyzer: "lower_ascii"
    fielddata: true
}
'query': {
        'span_near': {
            'clauses': {
                {'span_term': {'description' => 'aaa'}},
                {'span_term': {'description' => 'zzz'}}
            },
            "slop": 50,
            "in_order": FALSE
        }
    }
这是我所需要的(如果我理解的话),但如果我试图搜索“ÁŽŽŽ”,结果是空的(aaa zzz效果很好)。有没有一种方法可以在查询中设置lower_ascii analyzer,或者有没有更好的方法可以更好地进行设置?
谢谢。

看起来像是
match\u短语
query是您可能想要使用的。它支持可配置的slop

{
  "query":
  { "match_phrase": { "description": { "query": "<query>" , slop: <slop>} } }
}
{
“查询”:
{“匹配”短语:{“描述”:{“查询”:“”,slop:}}
}