1

ユーザーのクエリの 1 つに取り組んでいるときに、最初は最新バージョンを使用していると想定していましたが、 Analyze APIを示したときは驚きました。

トークンをチェックする必要があるカスタム アナライザー

{
    "settings": {
        "analysis": {
            "filter": {
                "splcharfilter": {
                    "type": "pattern_capture",
                    "preserve_original": true,
                    "patterns": [
                        "([?/])"
                    ]
                }
            },
            "analyzer": {
                "splcharanalyzer": {
                    "tokenizer": "keyword",
                    "filter": [
                        "splcharfilter",
                        "lowercase"
                    ]
                }
            }
        }
    }
}

API を分析する

POST /_analyze

{
    "analyzer": "splcharanalyzer",
    "text" : "And/or"
}

Output

{
    "tokens": [
        {
            "token": "analyzer", --> why this token
            "start_offset": 7,
            "end_offset": 15,
            "type": "<ALPHANUM>",
            "position": 1
        },
        {
            "token": "splcharanalyzer", --> why this token
            "start_offset": 19,
            "end_offset": 34,
            "type": "<ALPHANUM>",
            "position": 2
        },
        {
            "token": "text", --> why this token
            "start_offset": 42,
            "end_offset": 46,
            "type": "<ALPHANUM>",
            "position": 3
        },
        {
            "token": "and",
            "start_offset": 51,
            "end_offset": 54,
            "type": "<ALPHANUM>",
            "position": 4
        },
        {
            "token": "or",
            "start_offset": 58,
            "end_offset": 60,
            "type": "<ALPHANUM>",
            "position": 5
        }
    ]
}

上に明確に示されているように、正しくない非常に多くのトークンが生成されています。チェックされたユーザーは、1.7 バージョンを使用していると述べ、elasticsearch の最新バージョンで提供されている構文に従いました。

4

1 に答える 1