Solr facet 从输出中排除单词

Solr facet exclude words from output

下面是我的 Solr 请求

localhost:8983/solr/keyspace.table/select?q=*:*&fq=date:[2016-03-01T00:00:00Z TO 2016-03-01T00:59:00Z]&rows=0&wt=json&indent=true&facet=true&facet.field=title

这给了我这样的输出

"facet_counts": {
"facet_queries": {},
"facet_fields": {
  "title": [
    "on",
    24,
    "demand",
    6,
    "gold",
    6,
    "rebounds",
    6,
    "silver",
    6,
    "slips",
    6,
    "subdued",
    6,
    "abuse",
    3,
    "back",
    3,
    "at",
    2,
    .
    .

我想从中删除一些词,例如我想从输出中排除 onat。可能有很多这样的词,我想提供给 solr,它应该排除。有什么办法吗?

在搜索时,我发现并尝试了类似 fq={!tag=title}title:"on" 的方法,但没有用,它仍然返回相同的输出。

此外,默认情况下 returns 只有 100 个单词及其计数。我最多需要 1000 或 2000 个字,我们可以提供我们想要的字数作为输出吗?

按结果数查询:https://wiki.apache.org/solr/SimpleFacetParameters#facet.limit

根据您要排除的字词,您需要进入 Solr 手册、您正在使用的确切版本,并查找 'stop words' 以及 Solr 为您提供的不同可能性来实现您想要的。

抱歉,我无法提供进一步的帮助。

使用一个单独的字段,该字段仅包含您要分面的标记。您可以通过应用 StopFilter 来执行此操作 - 您可以使用要删除的所有值进行配置。您希望在索引时执行此操作,因此将其添加到过滤器列表后需要重新索引。

您可以使用 fq 从结果中排除文档,这些文档匹配不包含该字段的文档(使用 -term 或 NOT 作为布尔运算符)。