Transformation d'une matchPhraseQuery en filter


(Blured Derulb) #1

Bonjour,

Afin d'accélérer mes traitement je cherche à transformer le maximum de requêtes en filtres.

Je me demande si il est possible de transformer ce matchPhraseQuery en filtre :

QueryBuilder allTerms = matchPhraseQuery("text", query.originalText).operator(org.elasticsearch.index.query.MatchQueryBuilder.Operator.AND).fuzziness(Fuzziness.ZERO).minimumShouldMatch("100%");

Pour info, le champ text est "analysé", je ne sais pas si c'est possible d'utiliser ce type de champs dans des filtres.

Avez-vous une idée ? C'est vraiement du 0 ou 1 que je cherche en résultat je me fiche du scoring réel.


(David Pilato) #2

Si tu utilises elasticsearch 2.0, cela devrait se faire automatiquement si tu mets ta condition dans un filtre.

https://www.elastic.co/guide/en/elasticsearch/reference/2.1/query-filter-context.html


(Blured Derulb) #3

En 1.7 ce n'est pas possible ?


(David Pilato) #4

Tu peux toujours faire ça: https://www.elastic.co/guide/en/elasticsearch/reference/1.7/query-dsl-query-filter.html

Supprimé en 2.0 car inutile.


(system) #5