Come indice campi numerici e di ricerca per gamma in Lucene.Net?
-
22-09-2019 - |
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 ...
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.