Thanks Otis, for the quick reply. I dont find anything on the forums or the FAQ. I guess I cant get solr to compare search result documents that have the same topicId and then look for the maximum value of versionId in that set.
I may need to write that logic in my application. Thanks, Sushil Otis Gospodnetic wrote: > > Hi, > > I'm not sure if Solr is the right tool for the job, if that's all there is > to your application, but you might be able to get what you want by simply > sorting on the version field. Your version field is a very precise > timestamp, which means the version field will have LOTS of unique values, > which means that sorting by that field will eat your memory and increase > your searchers' warmup time. Please check the mailing lists for more > information, or maybe we already have this covered in the Solr FAQ? > > > Otis > -- > Sematext -- http://sematext.com/ -- Lucene - Solr - Nutch > > > > ----- Original Message ---- >> From: Sushil Vegad <vsus...@serebrum.com> >> To: solr-user@lucene.apache.org >> Sent: Friday, December 26, 2008 11:25:10 AM >> Subject: Retrieve documents that contain max value for a field >> >> >> Hi, >> Can someone please help with how to write a query for the following >> scenario? >> >> We index Topics that contains text. A topic can have many versions, each >> version is indexed. Our schema has topicid, versionId and timestamp >> fields, >> amongst others. Topicid is not a uniqueField because multiple verisons of >> a >> topic have the same topicId. Instead the versionId and timestamp differ >> for >> each version as follows. >> >> SolrInputDocument doc1 = new SolrInputDocument(); >> doc1.addField("id", "1"); >> doc1.addField("versionId", "1"); >> doc1.addField("versionDate", "2008-12-23T23:59:59Z"); >> >> SolrInputDocument doc1_1 = new SolrInputDocument(); >> doc1_1.addField("id", "1"); >> doc1_1.addField("versionId", "2"); >> doc1_1.addField("versionDate", "2008-12-24T23:59:59Z"); >> >> SolrInputDocument doc2 = new SolrInputDocument(); >> doc2.addField("id", "2"); >> doc2.addField("versionId", "1"); >> doc2.addField("versionDate", "2008-12-23T23:59:59Z"); >> >> SolrInputDocument doc2_1 = new SolrInputDocument(); >> doc2_1.addField("id", "2"); >> doc2_1.addField("versionId", "2"); >> doc2_1.addField("versionDate", "2008-12-24T23:59:59Z"); >> >> SolrInputDocument doc2_2 = new SolrInputDocument(); >> doc2_2.addField("id", "2"); >> doc2_2.addField("versionId", "3"); >> doc2_2.addField("versionDate", "2008-12-25T23:59:59Z"); >> >> We want to write a single query where the query returns doc1_1, doc2_2 >> and >> so on...that is for documents that have the same id, we want the query to >> return the document with highest versionId or the latest timestamp. >> >> Any thoughts how this can be done? >> >> Thanks, >> Sushil >> -- >> View this message in context: >> http://www.nabble.com/Retrieve-documents-that-contain-max-value-for-a-field-tp21175643p21175643.html >> Sent from the Solr - User mailing list archive at Nabble.com. > > > -- View this message in context: http://www.nabble.com/Retrieve-documents-that-contain-max-value-for-a-field-tp21175643p21178529.html Sent from the Solr - User mailing list archive at Nabble.com.