【问题标题】:How do I perform a partial search while preserving order using solr?如何在使用 solr 保留顺序的同时执行部分搜索?
【发布时间】:2017-05-16 07:58:09
【问题描述】:

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

  • 物理指南
  • 理论物理教程
  • 普通物理学 预订

如果要搜索标题“物理指南”,则可以使用 Title_t:物理学 G* 这会显示所有结果

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

现在,我的问题:

为什么过滤器不只显示“物理指南”结果? 由于搜索条件是“physics G*”而不是“*physics G *”,因此应该只显示一个结果。有没有办法保持搜索关键字的顺序?

【问题讨论】:

    标签: search solr solr4


    【解决方案1】:

    解析后你的查询Title_t:physics G*会变成这样

    Title_t:physics df:G*
    

    df 这里是默认字段(通常是文本,检查你的配置文件)。 并且默认运算符将 OR。因此它返回 Title_t 具有术语“物理”的文档和任何字段复制的文档,默认字段以 G 开头。

    尝试使用 ComplexPhraseQueryParser

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

    【讨论】:

    • inOrder=true 保留单词顺序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 2017-12-19
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多