代码之家  ›  专栏  ›  技术社区  ›  Marc Seeger

不带计数的不同SOLR字段值

  •  2
  • Marc Seeger  · 技术社区  · 14 年前

    我的问题和 this question
    不同的是,我需要最少的内存密集型方法来收集关于不同值的信息。在这种情况下,我不关心实际计数,我只想知道该字段的可能值。
    我总是耗尽堆空间(3000多万个文档),必须有某种方法/参数来节省内存

    3 回复  |  直到 7 年前
        1
  •  1
  •   Pascal Dimassimo    14 年前

    如果不同值的数目很高,则可能需要执行方面分页。使用facet.offset和facet.limit参数。

        2
  •  1
  •   Community pid    7 年前

    使用statcomponenet检索特定字段的不同值列表: https://cwiki.apache.org/confluence/display/solr/The+Stats+Component

    参数 stats.calcdistinct :

    如果为true,则将计算非重复值,并在响应中返回“countDistinct”和“distinctValues”。对于某些字段,此计算可能很昂贵,因此默认情况下为false。如果只想返回特定字段的不同值,还可以指定f..stats.calcdistinct,替换为字段名,以将不同值计算限制为所需字段。

    为了降低负载,尽可能少地检索它并缓存结果,只有在数据发生更改时才重新检索。

    如果您的索引通常很慢,您可能需要查看缓存配置和/或给SOLR更多的RAM(如果您有办法的话)。

    最初在这里(由我)回答:

    https://stackoverflow.com/a/26714447/621690

        3
  •  0
  •   Jem    14 年前

    我不知道内存使用情况,但你可能想试试 Field collapsing 你会找到Solr的补丁 here .