【问题标题】:Overriding unwanted page size in SOLR在 SOLR 中覆盖不需要的页面大小
【发布时间】:2013-08-07 14:39:52
【问题描述】:

我有一个使用 SOLR 作为后端搜索服务的 Web 应用程序。

控制搜索的所有请求都是 GET 请求:用户执行某项操作(键入内容、选择页面大小、排序标准),然后在按下搜索按钮后,Web 应用程序上的相应 servlet 调用 SOLR。

现在,发送到我的 servlet 的参数显示在浏览器地址栏中;这很好,因为

1) webapp 上的每个页面都可以存储为永久链接
2)可以通过直接更改URL来控制搜索

最重要的是,对于一个特定的参数,页面大小,我想施加一些限制。我的意思是:如果网络应用程序上的选择菜单提出 3 个选择(5、10、15),我不想要其他值。

现在,我知道我可以在我的 servlet 中做到这一点,但我想知道在 SOLR 方面是否也可以......本地参数?不知道。

简而言之:SOLR 上的“行”参数必须是 5,10 或 20:如果值 > 20,则应用 20。

【问题讨论】:

    标签: solr


    【解决方案1】:

    在 Solr SearchHandlers 中,您可以预定义一些配置设置,如Configuration 部分所述。这允许您设置以下参数行为

    • defaults - 提供默认参数值,如果参数没有在请求时指定的值,将使用这些值。
    • appends - 提供除了在请求时指定的任何值(或作为默认值)之外将使用的参数值。
    • invariants - 提供将使用的参数值,尽管在请求时提供了任何值。它们是让 Solr 维护者锁定 Solr 客户端可用选项的一种方式。无论查询、“默认”或“附加”参数中指定了哪些值,都将使用此处指定的任何参数值。

    但是,这三个选项不提供将行值限制为 20 的特定行为,就像您正在寻求的那样。我相信在 Solr 中限制这一点的唯一方法是创建一个自定义请求处理程序并将其插入 Solr。文章 - Developing a Request Handler for Solr 很好地概述了创建您自己的请求处理程序所需的步骤。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-12-12
      • 2020-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-17
      相关资源
      最近更新 更多