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
>

Reply via email to