search:search
を実行するときに特定の要素に対してのみワイルドカード検索を行う方法を探しています。具体的には、私は次のようになり、文書可能性があります:ワイルドカードで特定の要素のみを検索する
<pdbe:person-envelope xmlns:pdbe="http://schemas.abbvienet.com/people-db/envelope">
<person xmlns="http://schemas.abbvienet.com/people-db/model">
<costcenter>
<code>0000601775</code>
<name>DISC-PLAT INFORM</name>
</costcenter>
<displayName>Tj Tang</displayName>
<upi>10025613</upi>
<firstName>
<preferred>TJ</preferred>
<given>Tze-John</given>
</firstName>
<lastName>
<preferred>Tang</preferred>
<given>Tang</given>
</lastName>
<title>Principal Research Scientist</title>
</person>
<pdbe:raw/>
</pdbe:person-envelope>
検索が起こるとき、私は検索テキストが自動的にワイルドカードを使ったことにしたいが、唯一のdisplayName、firstNameの、lastNameのような特定の要素のためではなく、UPIのためにかコード。私が理解しているように、データベース内で特定のワイルドカード関連のインデックスを有効にする必要がありますが、ワイルドカード検索の対象となる各要素に対して、クエリを複数のcts:element-query
およびcts:element-value-query
のステートメントに書き換えるカスタムクエリパーサーが必要です最初に解析された検索クエリを使用します。あるいは、フィールド制約を作成し、フィールド制約を使用するようにクエリを書き直すこともできます。
ユーザーが単純な検索クエリとして入力した場合、一部の要素でワイルドカードを使用して条件付きで検索する別の方法はありますか?部分的な名字「TJ Tan」ですが、 "100256"。