Поиск фасета индекса диапазона пути не работает в Marklogic 9

#marklogic #marklogic-9

#marklogic #marklogic-9

Вопрос:

Привет, я использую search API для разработки функций поиска, я определил ограничение для узла «ti» и настроил индекс диапазона пути в базе данных. когда я пытаюсь выполнить поиск с использованием ограничения, он показывает нулевой результат, но то же самое работает в Marklogic 8, не хватает ли чего-нибудь в конфигурации. пожалуйста, предложите. ниже приведен код.

  xquery version "1.0-ml";

import module namespace search = "http://marklogic.com/appservices/search" 
  at "/MarkLogic/appservices/search/search.xqy";

let $PageLength := 10

let $Start := 1
let $SearchOption := 
    <options xmlns="http://marklogic.com/appservices/search">
        <return-facets>true</return-facets>
        <term>
            <term-option>case-insensitive</term-option>
            <term-option>wildcarded</term-option>
            <term-option>stemmed</term-option>
            <term-option>diacritic-insensitive</term-option>
            <term-option>punctuation-insensitive</term-option>
        </term>
        <constraint name="ti">
            <range collation="http://marklogic.com/collation/" type="xs:string" facet="true">
                <path-index>/bibliog/ti</path-index>
            </range>
        </constraint>
        <additional-query>{cts:collection-query('ID xmls')}</additional-query>
    </options>

return search:search('ti:Indium', $SearchOption, $Start, $PageLength)
  

Комментарии:

1. Какую версию MarkLogic 9 вы используете, и не могли бы вы попробовать самую последнюю?

2. Я использую Marklogic версии 9.0-7.2. даже я пробовал простой запрос: cts: search(fn: doc(),cts: path-range-query(‘/bibliog/ ti’,’=’,’Indium’),’нефильтрованный’) это также не работает.

3. Структура XML такова: <article type=»current»><bibliog><ti> Заострение интерфейса в смешивающихся многослойных слоях Ni / Cu, изученных методом атомно-зондовой томографии </ti></bibliog></article> поэтому я настраиваю индекс диапазона пути «/bibliog / ti» я пробовал этоодин cts: search(fn: doc(), cts: path-range-query(‘/ bibliog / ti’,’=’,’Indium’),’нефильтрованный’) в Marklogic версии 7.0-5.5, но он не работает.

4. Разве путь не должен быть bibliog/ti или /article/bibliog/ti ?

5. Спасибо @grtjn, это была проблема XPATH