Hello Mikhail, Thanks for the suggestions. It took some time to get to this -
1. FieldsCollapsing cannot be done on Multivalue fields - https://wiki.apache.org/solr/FieldCollapsing 2. Join acts on documents, how can I use it to join multi-value fields in the same document? 3. Block-join requires you to index parent and child document separately using IndexWriter.addDocuments API 4. Concatenation requires me to index with those columns concatenated. This is not possible as I have around 20 multivalue fields. Is there a way to solve this without changing how it's indexed? Best, -Vijay On Thu, Mar 13, 2014 at 1:39 AM, Mikhail Khludnev < mkhlud...@griddynamics.com> wrote: > Hello Vijay, > You can try FieldCollepsing, Join, Block-join, or just concatenate both > field and search for concatenation. > > > On Thu, Mar 13, 2014 at 7:16 AM, Vijay Kokatnur <kokatnur.vi...@gmail.com > >wrote: > > > Hi, > > > > I've inherited an Solr application with a Schema that contains > parent-child > > relationship. All child elements are maintained in multi-value fields. > > So an Order with 3 Order lines will result in an array of size 3 in Solr, > > > > This worked fine as long as clients queried only on Order, but with new > > requirements it is serving inaccurate results. > > > > Consider some orders, for example - > > > > > > { > > OrderId:123 > > BookingRecordId : ["145", "987", "*234*"] > > OrderLineType : ["11", "12", "*13*"] > > ..... > > } > > { > > OrderId:345 > > BookingRecordId : ["945", "882", "*234*"] > > OrderLineType : ["1", "12", "*11*"] > > ..... > > } > > { > > OrderId:678 > > BookingRecordId : ["444"] > > OrderLineType : ["11"] > > ..... > > } > > > > > > If you look up for an Order with BookingRecordId: 234 And > OrderLineType:11. > > You will get two orders : 123 and 345, which is correct per Solr. You > > have two arrays in both the orders that satisfy this condition. > > > > However, for OrderId:123, the value at 3rd index of OrderLineType array > is > > 13 and not 11( this is for BookingRecordId:145) this should be excluded. > > > > Per this blog : > > > > > http://blog.griddynamics.com/2011/06/solr-experience-search-parent-child.html > > > > I can't use span queries as I have tons of child elements to query and I > > want to keep any changes to client queries to minimum. > > > > So is creating multiple indexes is the only way? We have 3 Physical boxes > > with SolrCloud and at some point we would like to shard. > > > > Appreciate any inputs. > > > > > > Best, > > > > -Vijay > > > > > > -- > Sincerely yours > Mikhail Khludnev > Principal Engineer, > Grid Dynamics > > <http://www.griddynamics.com> > <mkhlud...@griddynamics.com> >