在SOLR中覆盖不需要的页面大小

时间:2013-08-07 14:39:52

标签: solr

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

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

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

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

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

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

简要说明:SOLR上的“行”参数必须是5,10或20:如果值>> 20然后应用20。

1 个答案:

答案 0 :(得分:1)

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

  
      
  • 默认值 - 提供默认参数值,如果参数在请求时没有指定值,则会使用默认参数值。
  •   
  • 追加 - 提供将在请求时指定的任何值(或默认值)使用的参数值。
  •   
  • 不变量 - 提供将在请求时提供的任何值时使用的参数值。它们是让Solr维护者锁定Solr客户端可用选项的一种方式。无论在查询,“默认值”或“追加”参数中指定了什么值,都会使用此处指定的任何参数值。
  •   

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