multi_match
をphrase_prefix
とし、Elasticsearch 5.5の全文検索に使用しています。 ESクエリは、私は次の応答にElasticsearch関連性スコアはどのように計算されますか?
[
{
"_index": "items_index",
"_type": "item",
"_id": "2",
"_score": 0.61426216,
"_source": {
"item": {
"keywords": "amul butter, milk, butter milk, flavoured",
"name": "Flavoured Butter"
}
}
},
{
"_index": "items_index",
"_type": "item",
"_id": "1",
"_score": 0.39063013,
"_source": {
"item": {
"keywords": "amul butter, milk, butter milk",
"name": "Butter Milk"
}
}
}
]
マッピングを取得しています
{
query: {
bool: {
must: {
multi_match: {
query: "butt",
type: "phrase_prefix",
fields: ["item.name", "item.keywords"],
max_expansions: 10
}
}
}
}
}
のように見え、次の通りである(私はデフォルトのマッピングを使用しています)
"name": "Flavoured Butter"
と
{
"items_index" : {
"mappings" : {
"parent_doc": {
...
"properties": {
"item" : {
"properties" : {
"keywords" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
},
"name" : {
"type" : "text",
"fields" : {
"keyword" : {
"type" : "keyword",
"ignore_above" : 256
}
}
}
}
}
}
}
}
}
どうitem
0.61426216
のより高いスコアを取得"name": "Butter Milk"
とスコア0.39063013
のドキュメントに対して
私はブーストを"item.name"
に適用して、同じ検索結果を得るフォーム検索フィールドを削除しようとしました。
Elasticsearchのスコアはどのように機能しますか? Relavanceに関して正しい結果を上回っていますか? phrase_prefix
ため
インデックスのマッピングを教えてください。なぜなら、私は '' name ''のdocと '' 0.37598053'という別の得点値を得ているからです: "Flavored Butter" ' –
@ChandraPraneethN私はデフォルトのマッピングを使用しています。唯一のことは 'item'はその親の内部にネストされたドキュメントですが、それは何の違いもありません。 –