あなたがそのようなパターンの単語を持っているなら、split on letter-number transitions: "SD500" → "SD", "500"
を利用して、word_delimiterトークンフィルタを弾力性のあるものにすることができます。
このフィルタを使用してレターワードのトランジションにワードを分割すると、反転インデックスにワードとレターワードの両方を別々に格納できます。永遠にこれはインデックスに正確な価値のコピーを保持します。
ユーザーは「EC 450」を入力した場合、あなたは次のようなクエリを構築することができ、あなたのユースケース今
PUT testindex_48
{
"settings": {
"analysis": {
"analyzer": {
"word_delimiter_analyzer": {
"tokenizer": "whitespace",
"filter": [
"lowercase",
"word_delimiter"
],
"ignore_case": true,
"preserve_original": true
}
},
"filter":{
"word_delimiter":{
"type":"word_delimiter",
"generate_word_parts":true,
"preserve_original": true
}
}
}
},
"mappings": {
"table1": {
"properties": {
"title": {
"type": "string",
"analyzer": "word_delimiter_analyzer"
}
}
}
}
}
POST testindex_48/table1
{
"title" : "EC450"
}
POST testindex_48/table1/_search
{
"query": {"bool": {"must": [
{"term": {
"title": {
"value": "450"
}
}}
]}}
}
POST testindex_48/table1/_search
{
"query": {"bool": {"must": [
{"term": {
"title": {
"value": "ec"
}
}}
]}}
}
POST testindex_48/table1/_search
{
"query": {"bool": {"must": [
{"term": {
"title": {
"value": "ec450"
}
}}
]}}
}
の下にマッピングし、クエリを参照してください。
なぜそうしようとしているのか分かりません。 – Adi
あなたのユースケースを説明できますか? –
あなたのクエリとマッピングを表示してください。助けが簡単になります – user3775217