0
私は、コンテキストは、アプリケーションの上部にあるオートコンプリート検索バーで、次の(簡体字)のデータ特定のトークナイザからトークンを与える方法
[
{ id: 1, customerNumber: "0008", name: "Bob" },
{ id: 2, customerNumber: "0854", name: "Sue" },
{ id: 3, customerNumber: "0041", name: "Larry" }
]
を持っています。
私はカスタム正規表現トークナイザを使用して、先行ゼロをトリミングして、ユーザが入力する必要がないようにしています。だから
ID 1 => "8"
ID 2 => "854", "85", "8"
ID 3 => "41", "4"
私達のユーザーが考える私がまた私にトークンを与える適用トークナイザエッジ-nグラムを持ってい
ID 1 => "8"
ID 2 => "854"
ID 3 => "41"
トークンを取得するクエリ「8のための「0008」より良い一致"" 0854 "より。しかし、彼らが「8」を検索すると、「0008」よりも高いランキング「08 **」のような結果が得られます。
「8」を検索するときに「0008」ランクを「0854」より高くするにはどうすればよいですか?
- 場合によっては、ユーザーはクエリに先行ゼロを含めます。
- 私は、id 1と2の両方が単一の "8"にトークン化しているので、そこから等しいことが問題だと思います。私はその問題をどのように修正するのか分かりません。
問合せ:
POST _search
{
"size": 24,
"from": 0,
"query": {
"multi_match": {
"query": "8",
"fields": [
"customerNumber",
"name"
],
"type": "best_fields"
}
}
}