Solr搜索父元素,嵌套查询,块连接的嵌套所有子元素。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Solr搜索父元素,嵌套查询,块连接的嵌套所有子元素。相关的知识,希望对你有一定的参考价值。
我正在努力解决这个问题。如何在Solr版本7.2中搜索父元素的嵌套所有子元素。在单一领域搜索我能够但在所有领域都没有解决方案。我已阅读所有文档,但确切的解决方案不存在可以有人帮我这个吗?
我的查询如下:
q={!parent which="doc_content_type:parentDocument"}"person"&fl=*, [child
parentFilter=doc_content_type:parentDocument limit=1000]
<hmd:emailAddresses>
<hmd:emailAddress>someone@example.org</hmd:emailAddress>
</hmd:emailAddresses>
<hmd:mailstop>88 ui</hmd:mailstop>
<hmd:description>
<hmd:aboutMe></hmd:aboutMe>
</hmd:description>
<hmd:names>
<hmd:fullName>Person Username Name</hmd:fullName>
<hmd:firstAndMiddleName>UserMiddlename UserName</hmd:firstAndMiddleName>
<hmd:firstName>Name person</hmd:firstName>
<hmd:middleName/>
<hmd:lastName>Lastname</hmd:lastName>
<hmd:alternateNames>
<hmd:alternateName type="">Some alt name person</hmd:alternateName>
</hmd:alternateNames>
</hmd:names>
</hmd:person>
此外,我也尝试过其他方式,而不是父母的孩子:
q={!child of="doc_content_type:parentDocument"}"person"&fl=*, [child
parentFilter=doc_content_type:parentDocument limit=1000]
我希望结果是包含子元素的所有“人”,而不仅仅是给定的字段。请注意,我有多个搜索字段~500
答案
解决方案通常是让Solr将字段中的所有内容复制到一个字段中 - 然后搜索它。您可以使用匹配所有字段的copyField指令执行此操作:
<copyField source="*" dest="all_text" />
然后,您查询all_text
而不是其他字段。
以上是关于Solr搜索父元素,嵌套查询,块连接的嵌套所有子元素。的主要内容,如果未能解决你的问题,请参考以下文章