私のインデックスには単純なタイプの "text"フィールドがあります。ElasticSearchのマッチスコア
"keywordName": {
"type": "text"
}
そして、私はこれらの文書が既に挿入されている:「サムスン」、「三星銀河」、「サムスン・カバー」、「サムスンの充電器」。私は単純な "一致" クエリを作成する場合は
、結果が妨害されている:
問合せ:
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"
}
}
]
}
}
最初の質問: "サムスン" はしていないのはなぜ最高のスコア?
2番目の質問:どのように私に最高の得点として私に "samsung"を与えるクエリまたはアナライザーを作ることができますか?
基本的にはhttp://stackoverflow.com/questions/43257656/elasticsearch-analyzer-on-text-fieldと同じ質問をしています。あなたの最初の質問に対する答えはhttps://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.htmlです。あなたの2番目の質問への答えは私がすでに答えたもう1つの投稿です。 –
質問は全く同じですが、私が他のインデックスと同じインデックス&アナライザを使用し、 "samsungs"を検索するとトークンは "samsung"なので、用語クエリは機能しません。 galaxy "... – Gun
これは、インデックスのマッピングとそれらの要件のクエリのリストを用意する前に、すべての要件を満たすことが重要な理由です。 –