нет предложений по ограничению слов - PullRequest
0 голосов
/ 15 января 2019

В моем вызове search:suggest я задаю ограничение префикса word для элемента. По какой-то причине я не получаю предложения по поиску ограничения префикса:

Этот код иллюстрирует мою проблему:

let $doc := 
<doc>
  <title>Show me some suggestions!</title>
</doc>

return xdmp:document-insert('so.xml', $doc);

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

search:suggest('title:', 
  <options xmlns="http://marklogic.com/appservices/search">
    <constraint name="title">
      <word collation="http://marklogic.com/collation/en">
        <element name="title" />
      </word>
    </constraint>

    <default-suggestion-source>
      <word-lexicon collation="http://marklogic.com/collation/en"/>
    </default-suggestion-source>
  </options>
)

Это не приводит к каким-либо предложениям. Только после добавления следующего suggestions-source я получаю ожидаемые предложения:

<suggestion-source ref="title">
   <word collation="http://marklogic.com/collation/en">
      <element name="title"/>
   </word>
</suggestion-source>

Это не похоже на то же самое с ограничениями range или collection, предложения работают "из коробки" и без suggestion-source.

Есть ли причина, по которой предложения не отображаются для ограничений word, например спектакль? Задокументировано ли это поведение где-нибудь?

Использование MarkLogic 9.0-8.

1 Ответ

0 голосов
/ 15 января 2019

Если вы создали словарный запас слова для определенного свойства или элемента JSON, параметры должны иметь возможность ссылаться на ограничение следующим образом:

<default-suggestion-source ref="title"/>

или определять словосочетание слова встроенным следующим образом:

<default-suggestion-source>
  <word collation="http://marklogic.com/collation/en">
    <element name="title" />
  </word>
</default-suggestion-source>

Опция word-lexicon определяет лексику слова в базе данных.Если для базы данных был включен словарный запас для всей базы данных, элемент word-lexicon должен работать - хотя это не рекомендуется (если база данных очень мала).

Для получения дополнительной информации см .:

http://docs.marklogic.com/guide/search-dev/search-api#id_89118

http://docs.marklogic.com/guide/search-dev/appendixa#id_35361

Надеюсь, что помогает,

...