Грани в марклогике с использованием Java - PullRequest
0 голосов
/ 21 мая 2018

Как получить информацию о гранях из MarkLogic, используя java API?Я попытался выяснить, ссылаясь на некоторые документы, но не смог найти решение.Пожалуйста, помогите найти решение.

Я создал диапазон элементов Index для json Свойство с именем "integerQuery" Element range index on

Теперь пытаюсь получить граненые значения и имена изкод.

  DatabaseClient client=DatabaseClientFactory.newClient("10.53.195.198",6010,"nosql",new 
     DigestAuthContext("admin","admin"));   

    QueryManager queryManager=client.newQueryManager();

    StructuredQueryBuilder queryBuilder=queryManager.newStructuredQueryBuilder();

 queryBuilder.jsonProperty("integerQuery");
 StructuredQueryDefinition def=queryBuilder.or();
   SearchHandle handle= queryManager.search(def,new SearchHandle());
 System.out.println(handle.getFacetResult("integerQuery"));  //Prints NULL

Пробовал использовать параметры запроса с QueryOptionsBuilder, но класс был удален в обновленной Java-версии MarkLogic.

Может кто-нибудь предложить ответ, подробное описание граненых значений из индекса диапазона элементов?

Я пытался учиться на введенном ими вводном курсе, но он по-прежнему использует класс QueryOptionsBuilder.

мой документ json в базе данных.

{
  "Name": "Flipkart", 
  "integerQuery": 7
}

1 Ответ

0 голосов
/ 24 мая 2018

Вы должны сами определить параметры для фасетов.Затем используйте StructuredQueryDefinition, построенный из StructuredQueryBuilder вместе с параметрами фасета, и передайте его RawCombinedQueryDefinition.Примером примера может быть:

// Build the StructuredQueryDefinition 
// from StructuredQueryBuilder
StructuredQueryDefinition builtSQ = queryBuilder.term("one");
String XML_OPTIONS = 
     "<options xmlns=\"http://marklogic.com/appservices/search\">" +
        " <constraint name=\"artist\"> " +
        " <range type = \"xs:string\" " +
               " collation = \"http://marklogic.com/collation/en/S1/AS/T00BB\"> " + 
        " <element ns = \"http://marklogic.com/MLU/top-songs\" name=\"artist\"/>" + 
        " <facet-option>descending</facet=option> " +
        " <facet-option>limit=30</facet=option> " +
     "</options>";
// Create a QueryManager
QueryManager qm = client.newQueryManager();
StructuredWriteHandle queryHandle = new StringHandle().with(
        "<search xmlns=\"http://marklogic.com/appservices/search\">" +
            builtSQ.serialize() + 
            XML_OPTIONS +
        "</search>").withFormat(Format.XML)
RawCombinedQueryDefinition query = qm.newRawCombinedQueryDefinition(queryHandle);
// Perform the search
SearchHandle results = qm.search(query, new SearchHandle());

Приведенные выше XML_OPTIONS предназначены для построения фасета на основе индекса диапазона для элемента "artist".Для получения дополнительной информации о том, как создать параметры фасета, перейдите по следующим ссылкам.

Создание фасетов поиска

Ограниченный поиск и фасетная навигация

Параметры ограничения

Параметры фасета

Для получения информации о комбинированном запросе см. Ссылку

Надеюсь, это поможет!

...