从 Solr 方面获取结果

Get results from Solr facets

我是 Solr 的新手,所以我不知道我想要实现的目标是否真的可行。 目前,我正在查询我的 Solr 以检索与多个方面查询中的条件匹配的结果数量。 例如:

localhost:8082/solr/dict/select?q=*:*&rows=0&wt=json&indent=true&facet=true&facet.query=dict1:"#tiger#"&facet.query=dict1:"#lion#"

通过这种查询,我在字段 "dict1":

中获得了包含 "tiger" 的 Solr 文档的计数以及包含 "lion" 的那些文档的计数
 {
  "responseHeader": {
    "status": 0,
    "QTime": 239,
    "params": {
      "facet.query": [
        "dict1:\"#tiger#\"",
        "dict1:\"#lion#\""
      ],
      "q": "*:*",
      "indent": "true",
      "rows": "0",
      "wt": "json",
      "facet": "true"
    }
  },
  "response": {
    "numFound": 37278987,
    "start": 0,
    "docs": [ ]
  },
  "facet_counts": {
    "facet_queries": {
      "dict1:\"#tiger#\"": 6,
      "dict1:\"#lion#\"": 10
    },
    [...]
  }
}

现在我还需要为每个方面获取一些结果,除了计数(例如,"tiger" 的三个结果和 "lion" 的三个结果)

我读过一些类似的问题 (Solr Facetting - Showing First 10 results and Other or SOLR - Querying Facets, return N results per Facet ),但他们的 none 答案似乎对我有用,可能是因为我在所有文档上都做了这些方面 (q=*:* ).

欢迎任何帮助:)

根据邮件列表,简单地使用分组怎么样?

solr/hotels/search?q=*%3A*&wt=json&indent=true&group=true&group.query=query1&group.query=query2&group.limit=3 [1]

这适合你吗?这 returns 2 组(每个查询 1 个)具有相关计数和最大文档数。

[1] https://cwiki.apache.org/confluence/display/solr/Result+Grouping