solr上的多词查询 我使用solr 3.3.0,使用示例文件夹开箱即用 solrQueryParser defaultOperator=“或”

solr上的多词查询 我使用solr 3.3.0,使用示例文件夹开箱即用 solrQueryParser defaultOperator=“或”,solr,Solr,我的问题是,当我搜索一个多词短语时,Solr似乎并没有返回好的结果 以下搜索未返回任何结果 但是,当我搜索roof或fixing时,它们都会返回一些好结果 返回4个结果 返回3个结果 在查询“屋顶固定”时,我希望solr返回7个结果。屋顶的4条记录和固定的3条记录 要实现这一点,是否需要任何特殊配置?您刚刚错误地表达了您的查询 尝试从“管理”页面执行以下查询: (屋顶或固定装置) 或者,如果您想在特定字段中找到: 字段名称:(屋顶或固定) 当您向SOLR提供一个类似“roof fixing”的

我的问题是,当我搜索一个多词短语时,Solr似乎并没有返回好的结果

以下搜索未返回任何结果

  • 但是,当我搜索rooffixing时,它们都会返回一些好结果

  • 返回4个结果
  • 返回3个结果
  • 在查询“屋顶固定”时,我希望solr返回7个结果。屋顶的4条记录和固定的3条记录


    要实现这一点,是否需要任何特殊配置?

    您刚刚错误地表达了您的查询

    尝试从“管理”页面执行以下查询:

    (屋顶或固定装置)

    或者,如果您想在特定字段中找到:

    字段名称:(屋顶或固定)


    当您向SOLR提供一个类似“roof fixing”的查询时,实际上是在询问默认字段中包含“roof”和“fixing”的所有文档(或默认的Demax字段集。更改其含义的唯一方法是重写用户键入的查询。这就是我们所做的,但规模更大。我们有一个前端界面,提供一整套选项并从中生成SOLR查询。人们可以在特定字段中输入搜索词,如果有多个字段,则可以输入搜索词word和它没有被引用,我们添加and。然后我们或将所有填写的字段放在一起。有些字段是特殊的,有一个MIN和MAX版本,我们将其转换为范围查询
    :[0到125000]
    。还有一些下拉列表支持多个选择,我们也将其转换为OR,例如
    状态:(“WA”或“CA”或“OR”或“NV”)

    Solr不一定会返回“roof OR fixing”的7个结果,因为一个结果可能同时包含“roof”和“fixing”。假设“roof”有3个结果,“fixing”有4个结果,但“roof”和“fixing”都出现在2个结果中。搜索“roof OR fixing”时,您只会得到5个结果,因为Solr不会返回重复的结果


    您是否尝试过使用url编码的空格(“%20”)而不是“+”符号?如果默认运算符是或不需要包含该运算符。

    我想我理解您的观点,但是,我允许用户通过前端界面进行搜索,因此我不能要求用户键入(屋顶或固定)。感谢您的额外解释,但是,我似乎没有通过键入Filype获得更多的结果。如果您让用户搜索前端,并希望搜索出现or行为,则您应该在将其发送到SOLR之前在后端处理他们的查询。如上所述,您应该准备带括号的值。如果您希望dd或OR,给用户一个选项,检测它,然后在将其传递给SOLR之前准备并将其注入SOLR查询。roof%20fixing也会返回0个结果,我理解您的观点,无论它是7还是5,我至少会期望4个结果。您正在搜索的字段是否可能没有标记化?我的管理屏幕n说这是一种字段类型的文本\u En也许可以尝试一种更灵活的类型,如“文本”?对不起,我希望我能提供更多帮助。嗨!你有没有可能以某种方式解决这个问题?