2012-07-26 2 views
0

J'apprends Apache Lucene et j'ai quelques questions concernant la performance de l'indice,Apache Lucene indexation

  1. Je construis un indice sur la base des données contenues dans la base de données, le schéma de la base de données est le schéma du Document Lucene.
  2. J'ai deux options pour répondre aux recherches. La première est de rechercher l'index et de répondre à la valeur avec l'index, autrement chercher dans l'index, obtenir l'identifiant (qui est la clé primaire de la table) des résultats et interroger la base de données. Pour le premier j'ai besoin de stocker les valeurs de la table dans l'index afin que je puisse récupérer les valeurs en utilisant Index.Store.Yes, et pour ce dernier, il suffit d'indexer les données et de ne pas stocker les données en utilisant Index.Store. Non, l'indice ne sera pas plus grand. L'utilisation de la technique précédente affectera les performances (recherche dans l'index en stockant toutes les valeurs) ou la recherche dans l'index et l'interrogation de la base de données (en stockant toutes les valeurs) affecteront les performances.
  3. Quelle est la meilleure approche ou est il existe d'autres solutions au problème ci-dessus

Répondre

1

Cela dépend vraiment, si vous allez avoir un énorme ensemble de données le mieux conserver l'indice le plus léger possible et interroger la base de données comme vous l'avez décrit. Cependant, si l'ensemble de données est petit, stockez-les également ...

0

Les performances de l'opération de recherche dans Apache Lucene dépendent du poids du fichier d'index. Gardez-le aussi léger que possible. Eh bien, dans votre cas, je recommande d'avoir un test d'horodatage pour les deux cas. Prenez au moins 20+ observations. Calculer une valeur moyenne. Les statistiques qui en résultent vont certainement vous aider à prendre une décision.

Questions connexes