Je passe la requête de match en tant que "A B C" avec "opérateur": "et" mais aussi, obtenir "A B C D" dans les Resultset (comme prévu). Y a-t-il un moyen d'éliminer "A B C D"? P>
3 Réponses :
{ "query": { "bool": { "must": [ { "match": { "text": { "query": "b c a" } } } ], "filter": { "term": { "text.word_count": "3" } } } }}
Si vous voulez seulement éliminer résultats: p> d code> à partir de votre recherche, cela peut être facilement effectué en ajoutant un
MUST_NOT code> feuille sur votre
Composé-requier code> .
Score constant code> améliore les performances en mettant en cache les résultats en exécutant la requête dans un
non-notation code> alias
filtre code> contexte. HTTPS: // www. elastic.co/guide/fr/elasticsearch/reference/Currrent/query-dsl-Cunstant-score-query.html p>
"hits": {
"total": {
"value": 2,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
...
"_score": 1.0,
"_source": {
"content": "a b c"
}
},
{ ...
"_score": 1.0,
"_source": {
"content": "a b c f"
}
}
]
}
Pour faire une correspondance exacte, vous pouvez utiliser "Match_Phrase" au lieu de "Match" dans votre requête et pour éliminer la chaîne de type "A B C D", vous pouvez simplement le placer dans un bloc "MUST_NOT". Exemple:
Pouvez-vous montrer votre cartographie de l'index?
Pouvez-vous poster la cartographie et la requête?