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"
ID 3 => "41"
我也有一個邊緣的n-gram分詞器施加給我的令牌
ID 1 => "8"
ID 2 => "854", "85", "8"
ID 3 => "41", "4"
我們的用戶認爲「0008」爲查詢「8更好的匹配「而不是」0854「。但是當他們搜索「8」時,他們會得到諸如「08 **」排名高於「0008」的結果。
搜索「8」時,如何使「0008」的排名高於「0854」?
- 有時候用戶會在他們的查詢中包含前導零。
- 我認爲這個問題是,id 1和2標記爲一個單一的「8」,所以從那裏他們是平等的。我只是不知道如何解決這個問題。
查詢:
POST _search
{
"size": 24,
"from": 0,
"query": {
"multi_match": {
"query": "8",
"fields": [
"customerNumber",
"name"
],
"type": "best_fields"
}
}
}