gpt4 book ai didi

java - 我可以在 Solr 查询中返回多个文档字段的值吗?

转载 作者:行者123 更新时间:2023-12-01 05:39:38 25 4
gpt4 key购买 nike

假设我在文档架构中有这些字段:

<field name="id" type="string" indexed="true" stored="true" multiValued="false" />
<field name="type" type="string" indexed="true" stored="true" multiValued="false" />
<field name="referenceDataValues" type="string" indexed="true" stored="true" multiValued="true" />
<field name="text" type="text" indexed="true" stored="false" multiValued="true" />

文档 A 具有列出的字段的以下值:

  • id:“不关心”
  • 类型:“销售订单”
  • 引用数据值:[“abcdefg”、“hijklmn”、“opqrst”]
  • 文本:[“做”、“不”、“关心”、“任一”]

文档 B 具有以下值:

  • id:“不关心”
  • 类型:“销售订单”
  • 引用数据值:["hijklmn", "opqrst"]
  • 文本:[“红色”,“油漆”]

文档 C 具有以下值:

  • id:“abcdef”
  • 类型:“客户”
  • 引用数据值:(空)
  • 文本:[“你好”、“世界”、“如何”、“你”、“做什么”]

文档 D 具有以下值:

  • id:“hijklmn”
  • 类型:“客户”
  • 引用数据值:(空)
  • 文本:[“你好”、“世界”、“如何”、“你”、“做什么”]

默认搜索仅在文本字段上。

如果用户输入查询“SalesOrder red Paint Customer hello world”,我想构造一个仅返回文档 B 的 Solr 查询。意思是,让我引用以下客户的(文本具有红色或油漆的 SalesOrders):文本有 hello 或 world

达到这个目的的算法如下:

首先,这个查询的结果:

q="hello world"&fq=type:客户&fl=id

这将是文档 C 和 D,仅包含 ID。但是,我实际上希望在每个 id 字段(而不是文档)中获取这些,这样我就可以查看它们是否存在于 SalesOrders 文档的 referenceDataValues 字段中。

q="red Paint"&fq=type:SalesOrder&fq=referenceDataValues:(在此处嵌套上一个查询的 id 值)

是否可以在第一个查询中返回ID字段的值?如果是,这个嵌套查询的语法是什么样的?

现在,我尝试使用的查询如下所示:

q=red paint&start=0&rows=25&fq=type:SalesOrder&fq=referenceDataValues:(_query_:"{!lucene fq=type:CustomerPartyMaster&fl=id} hello world")

最佳答案

您想要实现的是一种 ids 上的连接。文档C和D的id作为文档A和B的引用数据值中的外键

您可能想检查加入补丁 - https://issues.apache.org/jira/browse/SOLR-2272

如果它不起作用,您最终可能会将文档及其引用数据作为单个实体进行索引,以便您可以进行相应的搜索和过滤。

关于java - 我可以在 Solr 查询中返回多个文档字段的值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7492376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com