【问题标题】:In Solr run text search against document groups instead of individual documents在 Solr 中针对文档组而不是单个文档运行文本搜索
【发布时间】:2015-04-21 15:44:31
【问题描述】:

我有一个包含患者医疗记录的 Solr 索引。虽然索引是围绕笔记建立的,但我们通常对患者感兴趣。我通常使用groupfacet 功能将我的搜索结果按患者分组。这种方法通常效果很好,但也有一种情况并不奏效。

假设我想要一份所有有“关节炎”和“立普妥”相关笔记的患者的名单。我可以像这样进行群组搜索:

q = NOTE:(arthritis AND lipitor)
facet = true
facet.field = PATIENT_ID

但这只会匹配在同一注释中至少有一个包含两个术语的注释的患者。我真正想要的是至少有一张纸条包含“关节炎”和至少一张纸条包含“立普妥”的患者。我不在乎这些术语是否一起包含在同一个注释中。

Solr 有没有办法做到这一点?

【问题讨论】:

    标签: solr lucene


    【解决方案1】:

    有:使用嵌套文档,其中父文档是患者,子文档是注释。

    我建议您使用最新的 Solr 版本,因为这是一个一直在改进的功能(并且还有一些工作补丁)

    使用此设置有一些缺点(一般来说灵活性稍差),但我认为对于您的用例来说效果很好。

    对于文档:

    1. here you can see quick examples as json
    2. the two parsers discussed,您对第二个感兴趣,供您查询

    【讨论】:

      【解决方案2】:

      嵌套文档可以工作,但还有另一种方法可以在不更改数据库本身的情况下做到这一点。以下将正确返回至少一个包含“arthritis”的注释和至少一个包含“lipitor”的注释的患者。

      q = arthritis
      fq = {!join from=PATIENT_ID to=PATIENT_ID}lipitor,
      df = NOTE
      facet = true
      facet.field = PATIENT_ID
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-02
        • 1970-01-01
        • 2023-03-10
        • 2020-11-04
        • 1970-01-01
        • 1970-01-01
        • 2023-04-02
        • 1970-01-01
        相关资源
        最近更新 更多