在slush marklogic示例中添加一个facet

时间:2015-07-03 14:35:40

标签: marklogic facets

我花了大部分时间尝试根据marklogic slush template向示例应用添加一个方面。

它基于元素范围索引在eyeColor上有一个方面。

可以找到样本数据here

我的目标是在性别上添加一个方面,这也是示例json数据中的一个元素。所以我在localname性别上添加了一个元素范围索引。相同的校对端点。

然后我重新编制索引

现在我尝试了解在应用程序中方面出现之前是否需要在前端应用程序中进行其他更改。

从后端我尝试了解如何使用控制台上的示例xquery在我的搜索调用中查看哪些方面(或约束)可用。似乎我无法找到正确的搜索:搜索功能从控制台检索构面信息,甚至是eyeColor上的现有信息。

如果我知道我想要什么,我可以在options参数中传递一个约束,但似乎前端不知道search-api返回的特定方面还是我错了?

在控制台上我试过了:

xquery version "1.0-ml";
import module namespace search = "http://marklogic.com/appservices/search"
    at "/MarkLogic/appservices/search/search.xqy";

search:search(" ",
    <options xmlns="http://marklogic.com/appservices/search">
      <return-results>true</return-results>
      <return-facets>true</return-facets>
      <constraint name="eyeColor">
    <range collation="http://marklogic.com/collation/codepoint/" type="xs:string">
    </range>
  </constraint>
    </options>)

但这不包含方面结果......

是的我在这里阅读了关于ML方面的大部分现有问题,但仍然没有运气......

有人能让我走上正轨吗?

雨果

1 个答案:

答案 0 :(得分:1)

好的我明白了...... 你必须在app-root / rest-api / config / options / all.xml文件夹中的其余api选项中添加选项

添加选项(性别),如

  <search:constraint name="gender">
    <search:range type="xs:string" facet="true" collation="http://marklogic.com/collation/codepoint">
      <search:facet-option>limit=5</search:facet-option>
      <search:facet-option>frequency-order</search:facet-option>
      <search:facet-option>descending</search:facet-option>
      <search:json-property>gender</search:json-property>
    </search:range>
  </search:constraint>

使用roxy,rmeber再次部署你还需要一个范围索引......