1

エラスティック検索で奇妙な動作が発生しています。スペース、 + 、 - の場合に単語を分割するカスタムトークナイザーでカスタムアナライザーを使用しています。

私が探しているとき

{
  "query": {
    "match_phrase_prefix": {
      "name.default": {
        "query": "paris oly"
      }
    }
  }
}

期待どおりの結果が得られます paris olympia など...しかし、検索すると

{
  "query": {
    "match_phrase_prefix": {
      "name.default": {
        "query": "paris ol"
      }
    }
  }
}

まったく結果が出ません。

設定:

     "analysis": {
           "analyzer": {
              "customAnalyzer": {
                 "type": "custom",
                 "filter": "lowercase",
                 "tokenizer": "customTokenizer"
              },
           "tokenizer": {
              "customTokenizer": {
                 "pattern": "[\\+\\s-]",
                 "type": "pattern"
              }
           }
        }

フィールド マッピング:

{
    "name": {
              "properties": {
                        "default": {
                        "type": "string",
                        "analyzer": "customAnalyzer"
                 }
            }
        }
}

ドキュメントの一部のサンプル (要求されたフィールド):

 { 
"name": {
              "jp": "パリ オリンピア (劇場)",
              "default": "Paris Olympia",
              }
}

{    
    "TYPE_NAME": {
      "dynamic_templates": [
        {
          "name": {
            "path_match": "*name.*",
            "match_mapping_type": "string",
            "mapping": {
              "type": "string",
              "analyzer": "customAnalyzer"
            }
          }
        }
      ],
      "properties": {
        "point": {
          "type": "geo_point"
        }
      }
     }
}
4

1 に答える 1