2

Je prévois de maintenir l'historique de recherche des utilisateurs en indexant chaque texte de recherche en tant que document dans une recherche élastique. J'ai pensé à utiliser une requête Prefix pour obtenir la liste des Suggestions pour les utilisateurs. Avec la requête de préfixe j'ai utilisé une requête Multimatch pour obtenir les termes qui correspondent au milieu du texte.Quelle est l'utilité d'utiliser Elasitc search Préfixe requête en ce qui concerne les performances?

la requête pseudo ressemble ci-dessous:

{ 
"query" : { 
    bool : { 
      should : { 
        "Prefix query"{ 
         } 
        "multimatch query"{ 
        } 
      } 
    } 
} 

}

Avant que je voudrais savoir à quel point est-il utiliser le préfixe requête pour sugestions. Je maintiens un index pour chaque jour et voudrais interroger l'histoire des derniers 30 jours.

Est-ce que ce sera un problème de performance? Je veux effacer cela avant de commencer à l'implémenter. Y a-t-il une alternative pour la requête de préfixe dans ce genre de scénario?

Je l'ai déjà mis en œuvre des suggestions avec l'achèvement suggester mais mon exigence est de fournir l'utilisateur avec des suggestions basées sur l'histoire et avec un support de correspondant aux conditions au milieu du texte ainsi.

Répondre

0

Habituellement, Elasticsearch effectue un bon travail de recherche. Il peut être plus lent dans les requêtes complexes d'agrégation imbriquées, mais la recherche simple est très rapide. Je ne pense pas que vous ayez besoin de vous inquiéter trop à l'avance.

1

Dans mon projet précédent, nous utilisions le langage de requête, qui dépend fortement des opérateurs comme ceci star | partie du terme | star, et je pourrais dire dans quelques mauvaises circonstances (grand index - 100+ documents mln, grand texte à analyser, termes complexes, plusieurs langues) - Lucene pourrait se comporter lentement (essentiellement, parce que les étoiles principales sont lourdes dans l'implémentation standard de Lucene, aussi, ils sont interdits). Tout cela a été implémenté sans MultiMatchQuery.

On pourrait imaginer que la mise en œuvre des améliorations comme des tableaux de suffixe (https://en.wikipedia.org/wiki/Suffix_array) contribuera à (au moins il nous a aidés)

Donc, conclusion, faites attention, et si votre index (car il est seulement 30 jours de l'histoire) est relativement petit, ça devrait aller.

+0

ce serait vraiment me stimuler à démarrer. merci pour l'expérience –