0
votes

Y a-t-il un moyen de faire un match exact en cas de champ de texte à ElasticseSearch?

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"?


2 commentaires

Pouvez-vous montrer votre cartographie de l'index?


Pouvez-vous poster la cartographie et la requête?


3 Réponses :


0
votes

Mappage
{
"query": {
    "bool": {
        "must": [
            {
                "match": {
                    "text": {
                        "query": "b c a"
                    }
                }
            }
        ],
        "filter": {
            "term": {
                "text.word_count": "3"
            }
        }
    }
}}


0 commentaires

0
votes

Si vous voulez seulement éliminer d code> à partir de votre recherche, cela peut être facilement effectué en ajoutant un MUST_NOT code> feuille sur votre Composé-requier code> . xxx pré>

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>

résultats: 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"
            }
        }
    ]
}


0 commentaires

0
votes

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: xxx


0 commentaires