簡體   English   中英

如何在MarkLogic中將子元素包含為單詞查詢的一部分

[英]How to include sub element as a part of word query in MarkLogic

我們在xml中有如下數據

<person>
    <snm>Joisar</snm>
    <fnm>Manish</fnm>
    <init>Mr.</init>
</person>

單詞查詢如下

<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>

當我們搜索名字或姓氏時,它工作正常,我們得到結果

search:search($SearchWord, $SearchOption, $Start, $pageLength)

現在,當用戶想要搜索全名,即“Joisar Manish”時,它不顯示結果,因為兩者都在單獨的元素中。 它至少應該搜索一種方式,即Joisar Manish或Manish Joisar

你能幫我解決一下如何編寫單詞查詢以確保它按預期工作嗎? 或者我們需要采用不同的方法?

這里有兩種基本方法:

  1. 是分別搜索姓名的各個部分,並AND它們一起,邏輯Joisar AND Manish
  2. 你正在考慮它的方式,作為短語搜索。 但是,在這里,您需要對數據庫進行一些重新配置,因為默認情況下,短語會在元素邊界處中斷。 因此,您希望將這些低級元素聲明為phrase-through元素。 然后你搜索person元素。 這假設碎片實際上是相鄰的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM