多值字段的solr模式

多值字段的solr模式,solr,Solr,您好,在我的文档中,我有数据作为Party value和Party Type。单个文档可以有多个参与方值和参与方类型。例如,第一个文档的Party值为Pramod,Party type为client。同一文档的参与方值为XYZ,参与方类型为供应商。我需要以这样一种方式设计模式,即我能够查询client=pramod的所有文档。我可以通过在solr模式中定义两个字段client.name和supplier.name来实现这一点,但是问题是没有定义party type的值集,将来可能会添加新值 假设

您好,在我的文档中,我有数据作为Party value和Party Type。单个文档可以有多个参与方值和参与方类型。例如,第一个文档的Party值为Pramod,Party type为client。同一文档的参与方值为XYZ,参与方类型为供应商。我需要以这样一种方式设计模式,即我能够查询client=pramod的所有文档。我可以通过在solr模式中定义两个字段client.name和supplier.name来实现这一点,但是问题是没有定义party type的值集,将来可能会添加新值

假设我的表有3列文档id Party Value和Party Type。在这个表中,我有3行。第一行文档id:1参与方值:Pramod参与方类型:客户端。第二行:文档id:1参与方值:Raj参与方类型:供应商。第三行文档id:2参与方值:Pramod参与方类型:供应商。现在在这个表中,如果我使用SQL,我很容易找到所有的文档,其中Party值为Pramod,Party类型为Client


我需要设计solr模式,以便在solr中也能这样做。如果我在solr schema中创建两个字段Party value和Party type,这两个字段都是多值的,并尝试查询+Pramod+Supplier,那么solr将返回我第一个文档,即使在第一个文档中Pramod是客户而不是供应商

我认为您的模式很好,但您的查询不够具体。您的查询应该以特定字段为目标。因此,查询将如下所示:

+PartyValue:Pramod +PartyType:Supplier

有更多的细节。

这里有两个可能的问题:

  • 每个文档都有一个PartyValue和一个PartyType。在这种情况下,您应该使用Aaron的建议(一个字段用于PartyValue,一个字段用于PartyType)
  • 每个文档都可以有PartyValue类型对的列表。在这种情况下,您可能需要一个字段,但多值=true。您的查询如下

    +组合字段:(pramod供应商)


  • 将它们放在单个字段中的原因是,您不希望找到任何类型为a、任何值为B的文档;您希望找到包含a/B类型/值对的问题。

    您的问题很难理解。你能把问题弄清楚并举例吗?我想普拉莫德在问问题2。事实上,这是一个很好的解决办法。PartyValue多个PartyTypes对如何?solr TemplateTransformer无法处理此问题。如果组合字段名为
    “party”
    ,则
    “party:pramod”
    “party:supplier”
    也将起作用。唯一的问题是,如果参与方名称是
    “供应商”
    “客户”
    。假设您的文档包含两个多值字段party和type,那么您的查询应该类似于party:[“pramod”]和type:[“client”]