2016-11-23 2 views
1

XML образца, как показано ниже в моей базе данных MarkLogicкак получить поиск: предложение из нескольких источников элементов диапазона, как по умолчанию, предложение источник опция

<metadata> 
     <title>first title</title> 
     <author>gorge k</author> 
     <location>London</location> 
</metadata> 

У меня есть индекс диапазона, установленный на title, author и location. Я хочу создать источник поиска по умолчанию: источник предложения для всех элементов, а не какой-либо один элемент.

В поисках: вариант У меня есть только название, как вариант источника предложение по умолчанию, как показано ниже

<default-suggestion-source> 
    <range collation="http://marklogic.com/collation/" 
     type="xs:string"> 
    <element ns="" name="title"/> 
    </range> 
</default-suggestion-source> 

Теперь я хочу добавить как author и location в выше вариант источника предложение по умолчанию.

Я пытаюсь добавить author используя эту конфигурацию:

<default-suggestion-source> 
    <range collation="http://marklogic.com/collation/" 
     type="xs:string"> 
    <element ns="" name="title"/> 
    </range> 
    <range collation="http://marklogic.com/collation/" 
     type="xs:string"> 
    <element ns="" name="author"/> 
    </range> 
</default-suggestion-source> 

, но я получаю ошибку ниже:

[1.0-ml] XDMP-ARGTYPE: (err:XPTY0004) fn:string((attribute{fn:QName("","collation")}{" http://marklogic.com/collation/ "}, attribute{fn:QName("","collation")}{" http://marklogic.com/collation/ "})) -- arg1 is not of type item()?

Любой предложить, пожалуйста, как этого достичь?

ответ

1

Вы можете настроить источник предложений на refer to a constraint. Вы можете установить ограничение как field, based on the three elements you're interested in. Настройте индекс диапазона полей и параметры поиска, как показано ниже, и я думаю, что это должно сработать.

<search:options xmlns="http://marklogic.com/appservices/search"> 
    <constraint name="suggestions"> 
    <range type="xs:string" collation="http://marklogic.com/collation/"> 
     <field name="suggest-field"/> 
    </range> 
    </constraint> 
    <default-suggestion-source ref="suggestions" /> 
</search:options> 
+0

Спасибо Дэйв за предложение выше. Я создал поле и диапазон-индекс, теперь его работа. – Raj

Смежные вопросы