【问题标题】:Marklogic Autocomplete featureMarklogic 自动完成功能
【发布时间】:2013-10-06 07:10:51
【问题描述】:

我将通过Marklogic Tutorial for Oscars 为我在数据库中提取的文档开发一个应用程序。 我无法理解的是,虽然搜索框执行自动完成,但它不会对元素执行此操作..即如果我输入 Cha ......那么它应该开始建议所有以 Cha 开头的名称..例如 Charles, Charley等

如图所示:我可以写Decade(它将自动完成..)并在1920s..1930s..等中选择一个。 但我不想这样指定字段名称。我只想输入演员名称,它应该提供自动建议...

我在文档中找到了它,它说 search:suggest 函数可以做到这一点;但我是 xquery 等新手,不知道如何继续...

我需要修改这个函数或添加一些东西吗?如何?

【问题讨论】:

    标签: full-text-search xquery marklogic


    【解决方案1】:

    如果您输入 full-text 搜索词,则自动完成功能会处理 full-text 索引中的字词和短语。如果您预先添加搜索字段关键字,则自动完成功能会限制于此。

    我不知道搜索字段关键字的名称,但我猜它们是奖项:、十年:和获奖者:。因此,如果您输入十年:,那么自动完成应该只提供十年。

    --编辑--

    根据您的评论,如果您没有指定特定的搜索字段,听起来您想更改自动完成的来源。这很容易。如果您启动向导以创建 Oscar 示例应用程序,则该选项位于第一个屏幕上。您还可以在创建后从 Application Builder 重新访问同一向导以应用更改。

    只需打开该向导,转到“搜索”步骤,然后查找“高级设置”按钮。在覆盖屏幕的中间应该有一个名为“Suggestions”的标题,并在下拉列表下方指定默认来源,这是在您不为搜索添加前缀时自动完成的来源学期。如果您希望不带前缀的术语针对演员姓名自动完成,请将其更改为“名称”。

    HTH!

    【讨论】:

    • 我尝试过搜索奖项、十年等。它的作用是首先我必须输入十年(自动填充..),然后在选择这个 120 年代、1930 年代等时建议......然后在选择其中任何一个,都获得了结果。但我不想指定“十年”或任何术语。例如-我只想写演员的名字..它应该自动完成可能的建议......!!!
    • 是的,这有帮助。是否可以有多个字段作为默认来源;因为我有字段作为名字,姓氏。我是否需要通过添加包含名字和姓氏的自定义字段并将其用作默认字段(就像我们在 Solr/Elasticsearch 等其他索引器中所做的那样)来更改我的源代码,或者是否还有其他方式? ,我不明白 Range Constraint 以外的约束的用法。Marklogic 教程似乎没有多大帮助..
    • 参考您对this 的评论,用户宁愿选择abc ghy,而不必提供诸如“firstname:abc”和“lastname:ghy”之类的完整术语。这就是我想在我的上一条评论中说的。
    • @shrey:从技术上讲,像cts:element-values 这样的功能就在这些功能的背后。这些接受要包含的多个元素,以使用多个索引。但是 search:search 库还没有真正利用这种可能性。但是,您可以定义字段索引。这允许包含/排除特定元素的内容。您可以在其他索引旁边使用它。在其顶部使用字段范围索引来匹配精确值..
    猜你喜欢
    • 2022-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-17
    • 1970-01-01
    • 2021-06-24
    • 2011-07-07
    • 2012-01-06
    相关资源
    最近更新 更多