【问题标题】:adding a facet to the slush marklogic example向 slush marklogic 示例添加方面
【发布时间】:2015-07-03 14:35:40
【问题描述】:

我下午的大部分时间都在尝试向基于 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>)

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

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

谁能在这里让我走上正确的轨道?

雨果

【问题讨论】:

标签: marklogic facets


【解决方案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 再次部署,你还需要一个范围索引...

【讨论】:

  • 是的,在范围索引旁边,您需要添加一个带有 facet=true 的搜索约束。将索引放在 ml-config.xml 中,然后引导。将搜索约束放在 all.xml 中,然后部署 rest(或模块)。不需要重新索引。 UI 将自动检测额外的方面。
猜你喜欢
  • 2021-11-20
  • 1970-01-01
  • 2010-12-25
  • 1970-01-01
  • 2013-02-09
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
相关资源
最近更新 更多