2010-11-05 16 views
1

J'interroge un fichier d'index Lucene que je n'ai pas compilé. Cet index contient des documents avec des champs structurés comme celui-ci:La requête Lucene renvoie des choses auxquelles je ne m'attendais pas

alt text

Comme vous pouvez le voir le champ « type » est toujours vide, mais le champ « tous » contient des données formatées d'une manière si c'est interrogeable et contient un type de syntaxe type=ta. La chose étrange est que lorsque je interroge cet index en utilisant type:ta, il sort effectivement quelque chose même si le champ de type est toujours vide.

Que se passe-t-il ici?

EDIT

Après googler un peu plus que je trouve un concept bizarre (au moins pour moi, venant de fond de base de données SQL) que les données peuvent être stockées (Store.YES et Store.NO) dans différents façons . Lucene indexing: Store and indexing modes explained

Ceci est un concept très inhabituel pour moi car je ne trouve pas beaucoup de raisons pour ne pas stocker de données. Quelle est la raison derrière l'utilisation de Store.NO? Je vais probablement toujours vouloir avoir les données là même si je ne l'affiche pas n'importe où ... Je veux dire que si les données sont indexées, il doit être stocké de toute façon, non?

Répondre

1

Quelle est la raison derrière l'utilisation de Store.NO?

Tenir compte des requêtes:

  1. Quels sont les documents contenant le terme 'foo'?
  2. Quels termes le document '1234' contient-il?

Un index pour le premier affichera term -> document. La seconde va cartographier document -> term. La plupart des gens ne veulent utiliser Lucene que pour le premier type de requête, ils ne construisent donc que le premier type d'index (Store.NO). Si vous souhaitez effectuer le deuxième type de requête, vous devez créer les deux types d'index. Cela prend plus de place. (En théorie, il est possible de parcourir tous les termes et de comprendre le document sans réellement construire cet index, mais est vraiment lent.)

"Inverser l'index" peut être un nom plus approprié que "stocker".

0

ce que Lucene syntaxe de requête: il y a beaucoup de caractères de direction

essayer le type

: 'ta'

cité thoe ..