【问题标题】:How to use sub-query result as an input to the other query in Solr?如何使用子查询结果作为 Solr 中其他查询的输入?
【发布时间】:2015-11-23 16:36:32
【问题描述】:

假设我有一个包含以下字段的索引:

身份证、姓氏、国家、年龄

什么是 Solr 查询语法来实现在 SQL 中可以表示为的东西:

SELECT * 
FROM table
WHERE country = (SELECT country FROM table WHERE id = 123);

问题 - 我希望这只是一个查询,而不是两个单独的查询。

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    你将不得不稍微改变你的数据结构。 它不是 SQL,也没有关系,所以你必须手动映射。

    文档:

    {
        "Id": 1,
        "Surname": "myname",
        "CountryId": 1,
        "Age": 49
    }
    

    查询:

    http://my.solr/solr/table/select:

    {
        "q": "*:*",
        "fq": "CountryId: 49",
        "fl": "*"
    }
    

    【讨论】:

      【解决方案2】:

      如果您不想对数据进行非规范化,请尝试JoinBlock JoinJoin 的一个例子是:

      {
          "q":"{!join fromIndex=country from=id to=country}*:*"
      }
      

      但是当你有大量数据时会很慢,比如每个核心有数百万个条目。

      【讨论】:

        猜你喜欢
        • 2018-01-10
        • 1970-01-01
        • 2013-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 2020-01-02
        相关资源
        最近更新 更多