如何在使用solr保留订单的同时执行部分搜索?

时间:2017-01-02 07:38:18

标签: search solr solr4

使用Solr 4.0,我有一个字段Title_t(用于存储书籍的标题),它是TextField类型。假设这些是我的db中存储的以下标题:

  • 物理指南
  • 理论物理教程
  • 普通物理 书

如果想要搜索标题"物理指南",那么可以使用 Title_t:物理G * 这显示了所有结果

  • 物理指南
  • 理论物理教程
  • 普通物理书

现在,我的问题:

为什么过滤器不仅仅显示"物理指南"结果?  由于搜索标准是"物理G *"而不是" *物理G *",只应显示一个结果。有没有办法在搜索关键字中保留顺序?

1 个答案:

答案 0 :(得分:0)

解析后,您的查询Title_t:physics G*将变为

Title_t:physics df:G*

df这里是默认字段(通常是文本,检查配置文件)。 和默认运算符将OR。所以它返回的文件标题为具有术语'物理学'和任何字段的文档复制默认字段,单词以G开头。

尝试 ComplexPhraseQueryParser

q={!complexphrase inOrder=true}Title_t:"physics G*"