0

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

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

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2013-08-07T15:35:58.013 回答