Domanda

Sto utilizzando Lucene, e sto cercando di trovare un modo per indicizzare e recuperare i documenti che dispongono di una proprietà a distanza.

Per esempio io ho:

Document 1: Price:[30 TO 50]
Document 2: Price:[45 TO 60]
Document 3: Price:[60 TO 70]

e Vorrei cercare tutti i documenti di cui gamme intersecano un intervallo specifico , nell'esempio di cui sopra, se cerco Price in [55 TO 65] dovrei ottenere Document 2 e Document 3 come risultati.

Non credo NumericRangeQueries da solo farebbe il trucco, ho bisogno di lavorare sull'indice con qualcosa di simile a R-alberi, ma sono implementati in Lucene? Inoltre, credo che quello che ho bisogno dovrebbe essere una sottoclasse di MultiTermQuery, perché il Price in [55 TO 65] interrogazione ha due confini, ma non vedo niente di adatto tra le sottoclassi di MultiTermQuery.

Ogni aiuto è apprezzato, grazie,

Silvio

P.S. Sto utilizzando Lucene 2.9.0, ma posso aggiornare alla versione più recente, se necessario.

È stato utile?

Soluzione

Una possibilità semplice da provare è, durante il tempo di indice, semplicemente espandere gli intervalli a ciascun valore discreto nella gamma. Così [30 TO 50] sarebbe indicizzata come 30, 31, 32, 33, 34, ecc Quindi utilizzare la query normale intervallo per interrogare la gamma. Basta che non ci sono tonnellate di valori discreti (milioni) questo potrebbe svolgere abbastanza bene.

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