Hi Mikhail, Thanks a lot for your quick response! I did not know about that and this seems to be exactly what I was looking for. I did some quick tests with the JSON facets API (previously I was using the non-JSON faceting method) and it allows me to query child document but facet by parents, just as you described. This is perfect for me.
There is one extra issue that I did not mention in my previous email which is, similar to the faceting problem which is now solved, I have a grouping problem because I'd like to group child document by a field of the parent. Again I could fix that by indexing the parent fields with the child (and because I only need one field it would not be too bad in this case). But maybe there is a similar solution to that of the facets? I searched the docs but could not find it. Thanks a lot!!! frederic -- Frederic Font - ffont.github.io Music Technology Group, UPF - mtg.upf.edu <https://www.upf.edu/web/mtg/> Freesound - freesound.org On Thu, 25 Jan 2024 at 13:02, Mikhail Khludnev <m...@apache.org> wrote: > Hello Federic, > It sounds like blockParent domain change see. > > https://solr.apache.org/guide/solr/latest/query-guide/json-faceting-domain-changes.html#block-join-domain-changes > > On Thu, Jan 25, 2024 at 12:15 PM Frederic Font Corbera < > frederic.f...@upf.edu> wrote: > > > Hi everyone, > > > > I'm one of the developers behind the Freesound website ( > > https://freesound.org, a sound sharing website), we use Solr as our > search > > engine and I'm currently experimenting with a new feature that I'd like > to > > implement using Solr. In summary, we have a Solr index with one document > > per sound in our database and we do standard search operations there. > > However, I'd like to add child documents to each of the main documents > > which include specific information about the sounds at different points > in > > time. For example, I have a main document with basic properties like > sound > > title and tags, but then have N child documents that have a timestamp > field > > and some extra information associated with that time stamp. Here is > > simplified example of a document that could be indexed (normally my child > > documents would include also dense vector fields): > > > > [ > > { > > "ID": "1", > > "title": "Recording of a street ambience", > > "tags": ['urban', 'ambience', 'dogs', 'birds'], > > "duration": 1:21, > > "events": [{ > > "ID": "1/events#0", > > "timestamp": 0:23, > > "event_description": "Dog barking" > > },{ > > "ID": "1/events#1", > > "timestamp": 0:47, > > "event_description": "Bird calls" > > },{ > > "ID": "1/events#2", > > "timestamp": 1:05, > > "event_description": "Dog barking" > > }, > > ... > > ] > > }, > > ... > > ] > > > > What I want to achieve is to do a query that matches child documents and > > sorts them according to some score, but I want to do faceting based on > > parent document fields. For example, I want to get all documents in > which a > > "Dog barking" event happens (and if a document has 2 such events like in > > the example, I want the document returned 2 times), I want them sorted by > > the score of the child document, but I want to include faceting data for, > > e.g. the "duration" field (which refers to the parent document). > > > > One solution would be to duplicate all the parent document fields in > every > > child document at index time. This would work, but then I would get a lot > > of redundant information in the index. > > > > What I think would work best would be a way to extend the child document > > fields and include the fields of the parent at "query time". So I'd like > to > > specify the field list with something like > > "fl=timestamp,event_description,__parent__.duration". Is that possible? > > > > I tried other approaches that might work like the parent query parser > which > > will return parent documents whose child documents match some criteria, > but > > this has the problems of not telling me which of the child documents > > matched the query, and also it will not sort them as expected because the > > score is not propagated to the parent document. > > > > That is all, thanks a lot for the support! > > > > Cheers, > > > > frederic > > > > > > > > > > > > -- > > Frederic Font - ffont.github.io > > Music Technology Group, UPF - mtg.upf.edu <https://www.upf.edu/web/mtg/> > > Freesound - freesound.org > > > > > -- > Sincerely yours > Mikhail Khludnev >