我在我的索引中有一個簡單的「text」字段。ElasticSearch匹配分數
"keywordName": {
"type": "text"
}
,我已經插入這些文檔:「三星」,「三星Galaxy」,「三星蓋」,「三星充電器」。
如果我做一個簡單的 「匹配」 查詢,結果令人不安:
查詢:
GET keywords/_search
{
"query": {
"match": {
"keywordName": "samsung"
}
}
}
結果:
{
"took": 7,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 4,
"max_score": 1.113083,
"hits": [
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung galaxy",
"_score": 1.113083,
"_source": {
"keywordName": "samsung galaxy"
}
},
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung charger",
"_score": 0.9433406,
"_source": {
"keywordName": "samsung charger"
}
},
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung",
"_score": 0.8405092,
"_source": {
"keywordName": "samsung"
}
},
{
"_index": "keywords",
"_type": "keyword",
"_id": "samsung cover",
"_score": 0.58279467,
"_source": {
"keywordName": "samsung cover"
}
}
]
}
}
第一個問題:爲什麼 「三星」 還沒有最高分?
第二個問題:如何製作查詢或分析儀,使我的「三星」成爲最高分?
你基本上是問同樣的問題,因爲http://stackoverflow.com/questions/43257656/elasticsearch-analyzer-on-text-field。你的第一個問題的答案是https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html。對你的第二個問題的回答是我已經回覆的另一篇文章。 –
問題是相同的,但如果我採用與其他索引相同的索引和分析器,並且搜索「samsungs」,則令牌爲「samsung」,所以術語查詢不起作用,匹配查詢返回「samsung galaxy「... – Gun
這就是爲什麼在開始提出索引映射和這些需求查詢列表之前,制定所有要求的重要原因。 –