首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Blacklight中使用扩展的DisMax查询解析器

在Blacklight中使用扩展的DisMax查询解析器
EN

Stack Overflow用户
提问于 2013-08-11 11:04:09
回答 2查看 423关注 0票数 3

黑灯运行Solr查询时,所使用的查询解析器是DisMax查询解析器。但是,在我的solrconfig.xml文件中配置的查询解析器是EDisMax解析器。由于某些原因,Blacklight在请求中向Solr发送deftype=dismax,因此重写在Solr的配置中定义的所需的deftype=edismax值。

如何阻止Blacklight重写deftype参数?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-15 09:24:53

你在用黑光的高级搜索宝石吗?dismax解析器是在Advanced中的tree.rb文件下的lib/parsing_nesting下硬编码的。如果要使用edismax解析器,就必须在"lib“目录下创建一个新的"parsing_nesting”目录。将tree.rb文件复制到您创建的"parsing_nesting“目录中。简单(但有点难看)的解决方案是将文件中的所有"dismax“替换为"edismax”。一个更好但更困难的解决方案是彻底读取整个文件并更改一些函数签名,以便它们不需要"force_deftype“参数。从从:force_deftype => "dismax"函数中移除build_nested_query开始,看看这会导致什么。

票数 1
EN

Stack Overflow用户

发布于 2013-08-12 11:53:30

我认为dismax解析器的使用在Blacklight代码中是默认设置。但是,您可以通过修改/app/contoller/catalog_Controller.rb文件并将defType设置添加到config.default_solr_params变量来重写它。在进行此修改后,Blacklight附带的默认设置如下:

代码语言:javascript
复制
    config.default_solr_params = { 
      :qt => 'search',
      :rows => 10,
      :defType => 'edismax' 
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18171242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档