j'ai un ensemble de données comme ci-dessousLes correspondances exactes avec requête de match sur le terrain analysé ne pas montrer sur
"hits": [
{
"_index": "demotest",
"_type": "demotest",
"_id": "2",
"_score": 1,
"_source": {
"name": "Duvvuri ram gopal reddy"
}
},
{
"_index": "demotest",
"_type": "demotest",
"_id": "1",
"_score": 1,
"_source": {
"name": "ram gopal reddy"
}
},
{
"_index": "demotest",
"_type": "demotest",
"_id": "3",
"_score": 1,
"_source": {
"name": "reddy ram gopal"
}
}
]
Quand je tente d'exécuter une requête de correspondance avec valeur ram gopal reddy
enregistrement exacte correspondance ne montre pas sur le dessus. Requête:
GET demotest/_search
{
"explain": true,
"query": {
"match": {
"name": "ram gopal reddy"
}
}
}
Résultat après l'exécution de la requête ci-dessus:
"hits": [
{
"_index": "demotest",
"_type": "demotest",
"_id": "2",
"_score": 0.8630463,
"_source": {
"name": "Duvvuri ram gopal reddy"
}
},
{
"_index": "demotest",
"_type": "demotest",
"_id": "1",
"_score": 0.7594807,
"_source": {
"name": "ram gopal reddy"
}
},
{
"_index": "demotest",
"_type": "demotest",
"_id": "3",
"_score": 0.7594807,
"_source": {
"name": "reddy ram gopal"
}
}
]
Comment obtenir enregistrement exact égalés sur dans les résultats de recherche. En outre, j'ai posté mon test complet here et je veux la recherche insensible à la casse et non la recherche par phrase. Merci
Quelle version ElasticSearch est-ce? –
J'utilise élastique version 5.1.2 –
Etrange, même si les 3 mots "reddy ram gopal" sont dans tous les documents (je veux dire avec un score faible selon TF/IDF), un champ plus court devrait avoir un meilleur score qu'un long champ (selon TF/IDF doc ici https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html), pouvez-vous poster des détails '' _explain'' s'il vous plaît? –