On 10/02/2013 07:12 PM, Alice Wong wrote:
Hello,

We would like to index some documents. Each field of a document may have
multiple values. And for each (field,value) pair there are some associated
values. These associated values are just for retrieving, not searching.

For example, a document D could have a field named A. This field has two
values a1 and a2.

It is easy to index D, adding term a1 and a2 to field A, so either query
"A=a1" or "A=a2" will return D.

Assuming we have other values associated with (A,a1) and (A,a2) for D. We
would like to retrieve these associated values depending on whether "A=a1"
or "A=a2" is queried.

For example, if query "A=a1" returns D, we would like to return values 1
and 2. And if query "A=a2" returns D, we want to return values 3 and 10.

Is it possible to do this with Lucene? Initially we want to hack postings
to return associated values, but this seems quite complex.

Thanks!

Why not store a (nonindexed) text field with some internal structure (XML, JSON, CSV) that you can analyze after retrieving. For example,

<D>
  <A>
     <value>a1</value>
     <associated-values>
       ... whatever you want ...
     </associated-values>
  </A>
</D>

If you use Lux (luxdb.org), which is XML query support on top of Lucene, you can do this all automatically, and retrieve the results with a simple query like:

/D[A=a1]/associated-values

plus if you want to pull out the values and manipulate them, you have XQuery to do it with.

-Mike

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to