如何在使用 solr 保留顺序的同时执行部分搜索?
How do I perform a partial search while preserving order using solr?
使用 Solr 4.0,我有一个 TextField 类型的字段 Title_t(用于存储书名)。假设这些是存储在我的数据库中的以下标题:
- 物理指南
- 理论物理教程
- 普通物理
书
如果要搜索标题 "Physics Guide",则可以使用
Title_t:physics 克*
这显示了所有结果
- 物理指南
- 理论物理教程
- 普通物理书
现在,我的问题是:
为什么过滤器不只显示 "Physics Guide" 结果?
由于搜索条件是 "physics G*" 而不是“*physics G *”,因此应该只显示一个结果。有没有办法保持搜索关键字的顺序?
解析后你的查询 Title_t:physics G*
会变成
Title_t:physics df:G*
这里的df是默认字段(通常是文本,检查你的配置文件)。
和默认运算符将或。所以它 returns 文档 Title_t 有术语 'physics' 和任何字段的文档复制了默认字段,单词以 G 开头。
尝试使用 ComplexPhraseQueryParser
q={!complexphrase inOrder=true}Title_t:"physics G*"
使用 Solr 4.0,我有一个 TextField 类型的字段 Title_t(用于存储书名)。假设这些是存储在我的数据库中的以下标题:
- 物理指南
- 理论物理教程
- 普通物理 书
如果要搜索标题 "Physics Guide",则可以使用 Title_t:physics 克* 这显示了所有结果
- 物理指南
- 理论物理教程
- 普通物理书
现在,我的问题是:
为什么过滤器不只显示 "Physics Guide" 结果? 由于搜索条件是 "physics G*" 而不是“*physics G *”,因此应该只显示一个结果。有没有办法保持搜索关键字的顺序?
解析后你的查询 Title_t:physics G*
会变成
Title_t:physics df:G*
这里的df是默认字段(通常是文本,检查你的配置文件)。 和默认运算符将或。所以它 returns 文档 Title_t 有术语 'physics' 和任何字段的文档复制了默认字段,单词以 G 开头。
尝试使用 ComplexPhraseQueryParser
q={!complexphrase inOrder=true}Title_t:"physics G*"