[英]How to include sub element as a part of word query in MarkLogic
We have data in xml as follows 我们在xml中有如下数据
<person>
<snm>Joisar</snm>
<fnm>Manish</fnm>
<init>Mr.</init>
</person>
Word query is as follows 单词查询如下
<options>
<word>
<element ns="" name="{$constants:surname}"/>
<element ns="" name="{$constants:foreName}"/>
<element ns="" name="{$constants:initial}"/>
<element ns="" name="{$constants:prefix}"/>
<element ns="" name="{$constants:suffix}"/>
<term-option>case-insensitive</term-option>
<term-option>diacritic-insensitive</term-option>
<term-option>punctuation-insensitive</term-option>
<term-option>whitespace-insensitive</term-option>
</word>
</options>
When we search for First Name OR Last name, it works fine & we get results 当我们搜索名字或姓氏时,它工作正常,我们得到结果
search:search($SearchWord, $SearchOption, $Start, $pageLength)
Now when user wants to search for full name ie "Joisar Manish", it does not show the results, as both are in separate elements. 现在,当用户想要搜索全名,即“Joisar Manish”时,它不显示结果,因为两者都在单独的元素中。 At least one way it should search ie Joisar Manish OR Manish Joisar 它至少应该搜索一种方式,即Joisar Manish或Manish Joisar
Can you please help me with how to write word query to make sure it works as expected ? 你能帮我解决一下如何编写单词查询以确保它按预期工作吗? or we need to go with different approach? 或者我们需要采用不同的方法?
There are two basic approaches here: 这里有两种基本方法:
AND
them together, logically Joisar AND Manish
. 是分别搜索姓名的各个部分,并AND
它们一起,逻辑Joisar AND Manish
。 phrase-through
elements. 因此,您希望将这些低级元素声明为phrase-through
元素。 Then you do your search to the person
element. 然后你搜索person
元素。 That assumes the pieces are actually adjacent. 这假设碎片实际上是相邻的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.