【问题标题】:Solr : How to implement this logic?Solr:如何实现这个逻辑?
【发布时间】:2014-06-08 18:14:56
【问题描述】:

我有以下情况。假设我有一张像这样的大桌子。

Id(unique)     returnMe             desc                       name         value
1              user1            all those living in usa        country           USA
2.             user2            all those like game            game              football
3.             user1            my hobbies are                 hobby             guitar   

现在,我如何获得以下查询的结果 (returnMe)。

1. For all those users who live in usa AND like guitar
2. For all those users who live in usa OR like guitar.

无论如何请不要修改查询。

对于我的 solConfig.xml 'desc' 、 'name' 、 'value' 是可搜索、可索引的字段。

感谢您的帮助。

我正在编辑这个来解释我的逻辑..

Step 1: Break query on AND like (live in USA) AND (like guitar)
Step 2: Then select returnMes from first query and returnMes from second query.
Step 3: Take common returnMes, returned from first query and second query.

Solr 有什么办法可以做到这一点。我们可以通过 Solr“加入”还是不通过或其他方式来做到这一点? 我确实想在我的 PHP 中这样做,这将是巨大的开销。

【问题讨论】:

    标签: solr


    【解决方案1】:

    您将需要以某种方式修改查询。解析查询并向其添加括号以及可能要搜索的字段名称的简单步骤。您可以相当轻松地将这些查询转换为:

    (For all those users who live in usa) AND (like guitar)
    (For all those users who live in usa) OR (like guitar)
    

    或者也许您可以删除“所有那些”并且拥有的用户:

    (live in usa) AND (like guitar)
    (live in usa) OR (like guitar)
    

    并将查询字段设置为value。当然,如果您有一个带有 value=users 或类似性质的文档,您可能会遇到问题,因为它会搜索出现在 value 字段中的每个术语。

    如果您真的希望能够使用自然语言,那么您可以查看OpenNLP 项目。

    【讨论】:

    • 嘿,谢谢您的建议。我对我的问题进行了一些编辑以解释我的逻辑。你能帮我看看这个吗?
    • 为什么要手动合并结果? Solr 查询解析器支持布尔逻辑。为什么不直接通过查询(live in usa) AND (like guitar)
    • 因为 'AND' 尝试查找(生活在美国)和(如吉他)文档明智(两个查询都应该存在于文档中)。例如 - 如果我只是在上面的表格上做 AND 那么我不会得到任何结果,因为没有一个文档满足这两个查询。但我的要求是让“user1”查询“住在美国,爱好是吉他”..任何解决方案。我陷入了这个:(
    • 啊,我明白了。也许。不确定 Solr 是否支持:q={!join from=returnMe to=returnMe}value:(this AND that),我想试一试。更好的解决方案是将您的数据非规范化为多值字段,这样可以更好地执行您的搜索。
    • 好的,谢谢,我会深入研究加入并尝试找出:) .. 感谢您的建议和帮助:)
    猜你喜欢
    • 1970-01-01
    • 2016-02-14
    • 2011-03-12
    • 1970-01-01
    • 2022-09-25
    • 1970-01-01
    • 2023-03-13
    • 2023-03-27
    • 2013-09-28
    相关资源
    最近更新 更多