嵌套文档中的无字段Solr搜索

时间:2019-08-14 09:58:39

标签: solr

我想在嵌套的Solr文档中提供“无域搜索”,其中父母和孩子的字段很多。

用户应仅指定几个搜索词。可能的结果应在

中包含所有这些术语
  • 父母或
  • 一个孩子或
  • 父母和一个孩子

这意味着术语匹配不应该分布在几个孩子上。

要搜索的字段数是可变的,并取决于所选视图(可能仅是父字段或父子字段)。

示例:

如果索引了以下嵌套文档:

[
  {
    "title": "document 1",
    "text": "example doc text a",
    "_childDocuments_": [
      {
        "childTitle": "s1a",
        "childText": "child tok1a",
        "type": "child",
        "id": "1_a"
      },
      {
        "childTitle": "s1b",
        "childText": "child tok1b",
        "type": "child",
        "id": "1_b"
      }
    ],
    "type": "parent",
    "id": "1"
  }
]

然后这些查询应与文档匹配:

  • 1
  • 1个
  • s1a儿童tok1a
  • 文档s1a
  • 文档1 a s1b tok1b

但是下面列出的查询不应与文档匹配:

  • s1a tok1b
  • 文档1 a tok1a s1b

我尝试在带有标题和childTitle的视图上针对每个搜索词进行过滤查询,例如

query: document s1a
fq=title:document {!parent which="type:parent"}childTitle:document
fq=title:s1a {!parent which="type:parent"}childTitle:s1a

query: s1a s1b
fq=title:s1a {!parent which="type:parent"}childTitle:s1a
fq=title:s1b {!parent which="type:parent"}childTitle:s1b

第二个查询将文档作为匹配项发送,但匹配的词条分布在2个子项上,这违反了要求。

有什么方法可以用Solr来实现吗?

0 个答案:

没有答案