模糊搜索无法使用dismax查询解析器

时间:2015-06-18 07:30:06

标签: solr lucene

我的架构中有一个字段' fullText'这是&text;'' text_en'类型和多值。术语'测试'在一个文档的fullText字段中。

在solr中,当我尝试使用单词' test'进行搜索时,使用标准的lucene解析器,距离为1,它返回文档。我正在使用的查询是:

http://localhost:8983/solr/simple/select?q=fullText:test~1&wt=xml&indent=true

但是我使用dismax做同样的事情,而且它没有返回文档。我尝试的查询是:

http://localhost:8983/solr/simple/select?q=test&wt=xml&indent=true&defType=dismax&qf=fullText~1

http://localhost:8983/solr/simple/select?q=test~1&wt=xml&indent=true&defType=dismax&qf=fullText

1 个答案:

答案 0 :(得分:2)

根据设计,DisMax不支持查询参数中的所有lucene查询语法。来自the documentation

  

此查询解析器支持Lucene QueryParser语法的极简化子集。引号可用于对短语进行分组,+ / - 可用于表示强制和可选子句......但所有其他Lucene查询解析器特殊字符都被转义以简化用户体验。

模糊查询是不受支持的事情之一。有一个request to add it to the qf parameter,如果你想看看,但它还没有实现。

一个好的解决方案是转到edismax query parser。它的查询参数支持完整的lucene查询解析器语法:

http://localhost:8983/solr/simple/select?q=test~1&defType=edismax&qf=fullText