Я ищу способ выполнять поиск по шаблонам только для определенных элементов при выполнении 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
для каждого элемента, который я хочу использовать для поиска с подстановочными знаками, ИЛИ 'd с первоначально проанализированным поисковым запросом. Или я могу создать ограничения поля и переписать запрос, чтобы использовать ограничения поля.
Есть ли другой способ условного поиска с использованием подстановочного знака для некоторых элементов, но не для других, когда пользователь вводит простой поисковый запрос? Т.е. частичные имя и фамилия, «TJ Tan», но без частичных совпадений при поиске «100256».