> Is there a way to reduce the new domain to only the children's that comply to some kind of filter?
Sure. You can apply "filter" under "domain" to restrict a certain child type. Check https://solr.apache.org/guide/solr/latest/query-guide/json-faceting-domain-changes.html#adding-domain-filters please. PS. we should definitely add blockChain to Solr to modernize it. Thanks for the clue! On Thu, May 4, 2023 at 5:58 PM Igor Blanco <[email protected]> wrote: > Hi Mikhail, > > Thanks for your response. It worked and I think that it put me on the > right path but I'm still a bit confused > > I thought that blockChain allowed me to change the domain to all the > children of the main resulting documents and that the "id:DIC*" filter > would limit the children in the domain to those whose id starts with > DIC, which are only the dictionary ones. > > But after trying your suggestion, rereading the doc and thanks to your > pointer I start to understand that what I have to provide to > blockChildren is the query to get the parent documents. I've come with > something like this: > > "blockChildren":"-_nest_path_:*" > > It seems to work. > > But in my case this works because I only have "lang_ids" field in the > dictionary subdocuments... but what if this field was also present in > other subdocuments? Is there a way to reduce the new domain to only the > children's that comply to some kind of filter? > > Thanks a lot. > > > > El 4/5/23 a las 10:58, Mikhail Khludnev escribió: > > Hello Igor. > > I'm not sure parent/child docs are indexed well in this particular case. > > But I spot one detail in the ref guide ... exclusively matches all > parent > > documents in the collection. > > Presumably it should be "blockChildren":"id:[0 TO 9]" > > Beforehand, check that this query matches only parent documents. > > > > On Thu, May 4, 2023 at 10:14 AM Igor Blanco<[email protected]> > > wrote: > > > >> I have a document with nested documents indexed as this: > >> > >> { > >> > >> 'id':1, > >> 'creation_date':'2023-02-09T07:18:59Z', > >> 'update_date':'2023-05-03T14:37:08Z', > >> 'dictionary':{ > >> 'id':'DIC1', > >> 'lang_ids':[ > >> 2, > >> 3 > >> ] > >> }, > >> 'contexts':[ > >> ], > >> 'definitions':[ > >> { > >> 'id':'DFN1', > >> 'lang_id':2, > >> 'definition':'<p>una definición</p>' > >> } > >> ], > >> 'denominations':[ > >> { > >> 'id':'DNM1', > >> 'lang_id':2, > >> 'denomination':'Casa', > >> 'feminine_form':'no procede', > >> 'masculine_form':'no procede' > >> } > >> ], > >> 'illustrations':[ > >> ], > >> 'notes':[ > >> ], > >> 'observations':[ > >> ], > >> 'videos':[ > >> ] > >> > >> } > >> > >> > >> I want to find that document and a facet that lists each of the lang_ids > >> in the dictionary subdocument. > >> > >> So I try a query like this: > >> > >> > >> > http://0.0.0.0:8983/solr/index_cards/select?facet=true&indent=true&json.facet=%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22working_language_ids%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22domain%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22blockChildren%22%3A%22id%3ADIC*%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22terms%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22field%22%3A%20%22lang_ids%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22limit%22%3A%20-1%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D&q.op=OR&q=id%3A1&useParams= > >> > >> > >> q parameter is => id:1 > >> > >> json.facet parameter is => > >> > >> { > >> "working_language_ids": { > >> "domain": { > >> "blockChildren":"id:DIC*" > >> }, > >> "type": "terms", > >> "field": "lang_ids", > >> "limit": -1 > >> } > >> } > >> > >> The result returns the expected parent document, but > >> working_language_ids facet is empty: > >> > >> "facets":{ > >> "count":1, > >> "working_language_ids":{ > >> "buckets":[]}} > >> > >> > >> If i query directly "id:DIC*" and get the dictionary subdocuments > >> instead of the parent and ommit the "domain" section of the facet it > >> returns the expected result, so the problem does not seem to be in the > >> in the indexing of lang_ids itself nor in the facet definition, but most > >> probably in the use of "blockChildren". > >> > >> Any clue will be much appreciated, thanks. > >> > >> > >> -- > >> > >> > >> IgorBlanco > >> > >> Director desarrollo a medida | Neurrirako garapenen zuzendaria > >> > >> Binovo IT Human Project > >> > >> > >> > >> > >> 943 569 206<tel:943 569 206> | 690229375<tel:690229375> > >> > >> [email protected] <mailto:[email protected]> > >> > >> binovo.es <//binovo.es> > >> > >> Astigarragako Bidea, 2 - 2º izda. Oficina 10-11, 20180 Oiartzun > >> > >> > >> > >> > >> > >> youtube<https://www.youtube.com/user/CANALBINOVO/> > >> linkedin< > https://www.linkedin.com/company/binovo-it-human-project/> > >> > > > -- > > > IgorBlanco > > Director desarrollo a medida | Neurrirako garapenen zuzendaria > > Binovo IT Human Project > > > > > 943 569 206 <tel:943 569 206> | 690229375 <tel:690229375> > > [email protected] <mailto:[email protected]> > > binovo.es <//binovo.es> > > Astigarragako Bidea, 2 - 2º izda. Oficina 10-11, 20180 Oiartzun > > > > > > youtube <https://www.youtube.com/user/CANALBINOVO/> > linkedin < > https://www.linkedin.com/company/binovo-it-human-project/> > -- Sincerely yours Mikhail Khludnev https://t.me/MUST_SEARCH A caveat: Cyrillic!
