2012-06-16 2 views
4

Я новичок в marklogic, и я начал свое исследование с помощью Corona APi. Я сохранил некоторые документы, используя API хранилища. Теперь я хочу выполнить огранку по массиву слов. Я индексировали JSon документ, который выглядит какОгромный массив слов в marklogic

... "aothor": "имя", " published_date": "20.10.2011", "существительные": [ "n1", "n2 "], .... Я могу сделать гранение на поле автора, сделав его поле индекса диапазона. Я не уверен, как я могу получить количество всех слов в этом поле «существительные».

Пожалуйста, предложите, как я могу сделать грань на этом или любом другом способе, чтобы получить частоту этих слов.

ответ

2

В настоящее время не существует нативная поддержка огранка на объекты массива. Они планируют включить это в следующий выпуск Marklogic. Обходное решение предлагает здесь https://github.com/marklogic/Corona/issues/86

0

Я не уверен, как Corona хранит JSON. Но если каждое существительное хранится в собственном элементе, вы можете создать другой индекс диапазона. Частотные данные поступают из индексов диапазона.

Если вы еще не просмотрели их, могут помочь https://github.com/marklogic/Corona/wiki/Facet-Queries и https://github.com/marklogic/Corona/wiki/Range-Management.

+0

Спасибо .. Я уже прошел через эти ссылки ... Поле массива не подпадает под поддержку индекса диапазона. Он поддерживает строку, число, логическое значение, дату. Пожалуйста, предложите, как можно сохранить поле массива для огранки – Jagdeep

+0

Это выглядит как ограничение дизайна Corona, в частности способ, которым lib/json.xqy преобразует массивы в XML. Поэтому я рекомендую подавать RFE на https://github.com/marklogic/Corona/issues – mblakele

0

Для получения граней на авторском изображении вам необходимо создать индекс первого диапазона для элемента author через инструмент UU или Curl для супа. Если вы попытаетесь создать индекс диапазона с помощью экрана администратора MarkLogic в базе данных, тогда вам нужно сделать некоторую конфигурацию в MarkLogic. Выполните следующие шаги:

  1. создать индекс диапазона в базе данных, exaple: для элемента "автора"

  2. Перейти к, Настройка-> Gropus-> Deafult-> Namespcaes-> и нажмите на вкладку ADD

  3. Введите значение в поле префикса: "коронный индекс_идентификатор автор"

  4. Введите значение в URI пространства имен: http://xqdev.com/prop/xml/<index+type%3d"range"+name%3d"author"><structure>xmlelement</structure><element>author</element><type>string</type><collation/></index>

  5. Нажмите OK.

  6. Перезагрузите сервер MarkLogic (при необходимости).

Теперь нажмите ваш specif Url, чтобы получить фаску на автора для так:

http://localhost or ip":"corona-port-no"/facet/author?StructuredQuery={"and":[{"element":"author","equals":"Shakespear"},{"element":"published_date","equals":"20-10-2011"}]}&outputFormat=xml

+0

@Jagdeep: теперь следуйте моему сообщению, это сработает для вас. –

+0

Спасибо .. Но я упомянул, что я могу делать огранку в поле Автор. Я изо всех сил пытаюсь сделать огранку в поле Noun, где у меня есть множество слов. – Jagdeep

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