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?