Hmmm, there's no particular "right way". It'd be simpler
to index these as two separate fields _if_ there's only
one pair per document. If there are more and you index them
as two mutliValued fields, there's no good way at _query_ time
to retain the association. The returned multiValued fields are
guaranteed to be in the same order of insertion so you can
display the correct pairs, but you can't use the association
to score docs. Hmmm, somewhat abstract. OK say you want to
associate two tag/value pairs, tag1:50 and tag2:100. Say further
that you have two multiValued fields, Tags and Values and then
index tag1 and tag2 into Tags and 50 and 100 into Values.
There's no good way to express "q=tags:tag1 and factor the
associated value of 50 into the score"

Note that the returned _values_ will be
Tags:   tag1 tag2
Values  50  100

So at that point you can see the associations.

that said, if there's only _one_ such tag/value pair per document,
it's easy to write a FunctionQuery (http://wiki.apache.org/solr/FunctionQuery)
that does this.

*******************************

If you have many tag/value pairs, payloads are probably what you want.
Here's an end-to-end example:

http://searchhub.org/2014/06/13/end-to-end-payload-example-in-solr/

Best,
Erick

On Mon, Aug 18, 2014 at 7:32 AM, Dave Seltzer <dselt...@tveyes.com> wrote:
> Hello!
>
> I have some new entity data that I'm indexing which takes the form of:
>
> String: EntityString
> Float: Confidence
>
> I want to add these to a generic "Tags" field (for faceting), but I'm not
> sure how to hold onto the confidence. Token Payloads seem like one method,
> but then I'm not sure how to extract the Payload.
>
> Alternatively I could create two fields: TagIndexed which stores just the
> string value and TagStored which contains a delimited String|Float.
>
> What's the right way to do this?
>
> Thanks!
>
> -D

Reply via email to