Thanks Darren,

The problem with that is that it may not return one document per id, which is 
what I need.  IE, I could give 100 ids in that OR query and retrieve 100 
documents, all containing just 1 of the IDs. 

-Kallin Nagelberg

-----Original Message-----
From: dar...@ontrenet.com [mailto:dar...@ontrenet.com] 
Sent: Thursday, May 20, 2010 12:21 PM
To: solr-user@lucene.apache.org
Subject: Re: seemingly impossible query

Ok. I think I understand. What's impossible about this?

If you have a single field name called <id> that is multivalued
then you can retrieved the documents with something like:

id:1 OR id:2 OR id:56 ... id:100

then add limit 100.

There's probably a more succinct way to do this, but I'll leave that to
the experts.

If you also only want the documents within a certain time, then you also
create a <time> field and use a conjunction (id:0 ...) AND time:NOW-1H
or something similar to this. Check the query syntax wiki for specifics.

Darren


> Hey everyone,
>
> I've recently been given a requirement that is giving me some trouble. I
> need to retrieve up to 100 documents, but I can't see a way to do it
> without making 100 different queries.
>
> My schema has a multi-valued field like 'listOfIds'. Each document has
> between 0 and N of these ids associated to them.
>
> My input is up to 100 of these ids at random, and I need to retrieve the
> most recent document for each id (N Ids as input, N docs returned). I'm
> currently planning on doing a single query for each id, requesting 1 row,
> and caching the result. This could work OK since some of these ids should
> repeat quite often. Of course I would prefer to find a way to do this in
> Solr, but I'm not sure it's capable.
>
> Any ideas?
>
> Thanks,
> -Kallin Nagelberg
>

Reply via email to