【问题标题】:Exclude all tags from facet in Solr从 Solr 的 facet 中排除所有标签
【发布时间】:2020-08-20 09:42:49
【问题描述】:

目前正在尝试

json.facet={
  "category" : { "type": "terms", "field": "category" },
  "initial_category" : { "type": "terms", "field": "category", domain: { excludeTags: "*"} }
}

但没有成功。

我需要initial_category 来检索没有所有过滤器的存储桶。

完整的查询是

curl http://localhost:8983/solr/items/query -d '
q=name:phone&
fq={!tag=size}size:2XL&
rows=0&
json.facet={
  "category" : { "type": "terms", "field": "category"},
  "initial_category" : { "type": "terms", "field": "category", domain: { excludeTags: ""} }
}'

如何从构面中排除所有标签?

【问题讨论】:

  • 您的完整查询是什么?您还必须适当地标记过滤器
  • @MatsLindh 我已经更新了问题
  • 据我所知,excludeTags 不支持通配符(在您的完整查询中,不存在 *)。 excludeTags: "size" 应该做你想做的事。
  • 在这种情况下是的,但我可以在查询中有多个标签,所以我正在寻找一种解决方案,不提及所有标签,而是指定通配符之类的东西
  • 据我所知,没有通配符支持,因此您必须将每一个都列为列表 - excludeTags: "size,color,etc"

标签: solr facet solr-search


【解决方案1】:

试试看:

json.facet={
  "category": {
    "type": "terms",
    "field": "category"
  },
  "initial_category": {
    "type": "terms",
    "field": "category",
    domain: {
      query: "*:*"
    }
  }
}

facet.domain.query 允许在任意查询上运行 facet,而不管主域如何。

https://lucene.apache.org/solr/guide/8_0/json-faceting-domain-changes.html#arbitrary-domain-query

【讨论】:

    猜你喜欢
    • 2018-10-23
    • 2016-07-12
    • 1970-01-01
    • 2012-04-15
    • 1970-01-01
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多