ElasticSearchで部分一致をレンダリングする前に、正確な文字列一致を注文しています
3 つのドキュメントがあるとします。
- マイケル・A
- マイケル・B
- ミカ
michaを検索すると、3 番目のドキュメントのみが返されます。ただし、 micha*を検索すると、上記の順序で 3 つのドキュメントすべてが取得されます。
私の質問は、他の結果の前に表示される 3 番目のドキュメント (完全一致) を取得するにはどうすればよいですか?
:analysis => {
:filter => {
"my_edge_ngram_filter" => {
"type" => "edgeNGram",
"min_gram" => 1,
"max_gram" => 128,
"side" => "front",
},
"my_phone_filter" => {
"type" => "pattern_replace",
"pattern" => "\\D",
"replacement" => ""
}
},
:analyzer => {
"default_index" => {
"tokenizer" => "uax_url_email",
"filter" => [
"standard",
"lowercase",
"stop",
"my_edge_ngram_filter"
],
"type" => "custom"
},
"my_phone_analyzer" => {
"tokenizer" => "keyword",
"filter" => [
"my_phone_filter",
],
"type" => "custom"
},
"default_search" => {
"type" => "standard"
}
}
}
}