【问题标题】:Facets in marklogic using java使用java的marklogic中的方面
【发布时间】:2018-05-21 12:34:02
【问题描述】:

如何使用 java API 从 MarkLogic 获取 Facets 信息?我试图通过参考一些文档来弄清楚我们的问题,但无法获得解决方案。 请帮助寻找解决方案。

我在名为“integerQuery”的 json 属性上创建了一个元素范围索引

现在尝试从代码中获取分面值和名称。

  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 的查询选项,但在更新的 MarkLogic java 版本中删除了该类。

任何人都可以建议从元素范围索引中详细描述分面值的答案吗?

我尝试从他们提供的入门课程中学习,但它仍然使用 QueryOptionsBuilder 类。

我在数据库中的 json 文档。

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

【问题讨论】:

    标签: java nosql marklogic facet marklogic-9


    【解决方案1】:

    您需要自己为构面定义选项。然后,使用从StructuredQueryBuilder 构建的StructuredQueryDefinition 和构面选项,并将其传递给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 用于基于元素“艺术家”的范围索引构建构面。有关如何构建构面选项的更多信息,请访问以下链接。

    Generating Search Facets

    Constrained Searches and Faceted Navigation

    Constraint Options

    Facet Options

    有关组合查询的信息,请参阅link

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多