Domanda

Sto cercando un modo efficace per indicizzare e cercare i campi numerici in Lucene.Net. In questo momento il mio bisogno è solo per valori interi.

Voglio cercare per intervalli di valori (tra X e Y, più di x ...). In questo momento sto indicizzazione il numero come è e manualmente la creazione di clausole per ogni valore tra i due valori, ma genera rapidamente un sacco di clausole e di colpire il limite predefinito (1024) quando sto alla ricerca di un valore compreso tra 1000 e 5000, per esempio. Sono sicuro che ci sia un modo migliore per farlo ...

È stato utile?

Soluzione

Risolto con un RangeQuery. Si può fare anche con il parser query con la seguente sintassi:

FieldName:[startValue TO endValue]

Tenga presente che la query gamma opera su stringhe, in modo che i numeri devono essere normalizzate sia nell'indice e nella query. Nel mio caso ho normalizzato a 5 cifre con .ToString ( "00000"). speciale di manovra sarebbe necessario per i numeri negativi e decimali, ma non è stato un problema nel mio caso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top