marklogic 中的方面使用 java
Facets in marklogic using java
如何使用 java API 从 MarkLogic 获取 Facets 信息?我试图通过参考一些文档来弄清楚我们的问题,但无法获得解决方案。
请帮助找到解决方案。
我在 json 属性 上创建了一个名为 "integerQuery" 的元素范围索引
现在尝试从代码中获取分面值和名称。
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
的查询选项,但 class 在更新的 MarkLogic java 版本中被删除。
任何人都可以建议详细描述元素范围索引中的分面值的答案吗?
我尝试学习他们提供的入门课程,但它仍然使用 QueryOptionsBuilder class。
我的 json 文档在数据库中。
{
"Name": "Flipkart",
"integerQuery": 7
}
您需要自己为构面定义选项。然后,将 StructuredQueryBuilder
构建的 StructuredQueryDefinition
与 facet 选项一起使用,并将其传递给 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" 上的范围索引构建切面。有关如何构建方面选项的更多信息,请访问以下链接。
Constrained Searches and Faceted Navigation
有关组合查询的信息,请参阅此link
希望对您有所帮助!
如何使用 java API 从 MarkLogic 获取 Facets 信息?我试图通过参考一些文档来弄清楚我们的问题,但无法获得解决方案。 请帮助找到解决方案。
我在 json 属性 上创建了一个名为 "integerQuery" 的元素范围索引
现在尝试从代码中获取分面值和名称。
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
的查询选项,但 class 在更新的 MarkLogic java 版本中被删除。
任何人都可以建议详细描述元素范围索引中的分面值的答案吗?
我尝试学习他们提供的入门课程,但它仍然使用 QueryOptionsBuilder class。
我的 json 文档在数据库中。
{
"Name": "Flipkart",
"integerQuery": 7
}
您需要自己为构面定义选项。然后,将 StructuredQueryBuilder
构建的 StructuredQueryDefinition
与 facet 选项一起使用,并将其传递给 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" 上的范围索引构建切面。有关如何构建方面选项的更多信息,请访问以下链接。
Constrained Searches and Faceted Navigation
有关组合查询的信息,请参阅此link
希望对您有所帮助!