【问题标题】:Multiple word search with Solr使用 Solr 进行多词搜索
【发布时间】:2013-05-31 12:04:40
【问题描述】:

我遇到了 Solr 的问题,我无法协调不精确的搜索与多个单词。

目前我的 Solr 是这样配置的:query=ctnt_val:*keyword* 其中 ctnt_val 是我正在搜索的字段,关键字是我传递的值。

因此,如果我输入 lon,它将返回所有带有 longerLondon、...的结果,这正是我想要的。

问题是,如果我的查询有几个词长(例如,Gotham City),它会返回包含 Gotham 的所有结果以及包含 City,而不是只返回包含 Gotham City 的所有结果。

如果我将查询更改为query=ctnt_val:"keyword",它可以工作,但我无法进行不精确的搜索(lon 将不再返回 London)。如果我这样做 query=ctnt_val:*"keyword"* 我会从我的数据库中获得所有结果,这显然不是我想要的。

有什么想法吗?

【问题讨论】:

    标签: solr


    【解决方案1】:

    默认搜索处理程序使用 OR 作为 default query operator

    您可以使用q=ctnt_val:gotham\ city&q.op=AND 进行检查,它将查询运算符设置为 AND 并将所有查询项设为必填项。

    gotham\ city - \ 是从查询中转义空格

    【讨论】:

    • 奇怪...q=ctnt_val:my%20profile 给了我 26 个结果,但 q=ctnt_val:my%20profile&q.op=AND 给了我 0 个结果
    • 你是否逃离了这个空间。作为 q=ctnt_val:my profile,将搜索 my on ctnt_val 字段和默认字段上的配置文件,并使其对这两个术语都是强制性的。
    • q=ctnt_val:my%20profile&q.op=ANDq=ctnt_val:my\%20profile&q.op=AND 给我同样的结果:零:(
    • ctnt_val 是否包含这两个词?
    • 确实如此!引擎应该会找到结果。
    猜你喜欢
    • 1970-01-01
    • 2015-11-02
    • 1970-01-01
    • 1970-01-01
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多