gpt4 book ai didi

java - 是否可以在 Solr 中创建一个多值多字段,以允许在查询时自定义逻辑?

转载 作者:行者123 更新时间:2023-12-01 04:21:31 26 4
gpt4 key购买 nike

我正在处理一个相当小的需求,在 Solr 中对关系结构进行建模,并认为自定义多域将是解决我的问题的最合适的解决方案。简而言之,索引中的每条记录都会有多个禁运日期和到期日期,以便内容在何时被视为“可用”。这些日期按照另一种分类(假设按设备)进行分组,因此,例如,索引中的任何给定项目可能对两个日期之间的移动用户可用,但仅对另外两个日期之间的桌面用户可用。

与货币和 latlon 类型非常相似,我会将值索引为表示每个可用性窗口的逗号分隔列表,例如:

mobile,2013-09-23T00:00:00Z,2013-09-30T00:00:00Z 

因此,单个索引记录可能如下所示

{
id: "1234",
text: ["foobarbaz"],
availability: [
"mobile,2013-09-23T00:00:00Z,2013-09-30T00:00:00Z",
"pc,2013-09-22T00:00:00Z,2013-09-30T00:00:00Z"
]
}

自定义类型将完成解析传入值并相应存储它的工作。这是一个可行的解决方案吗?我将如何处理查询时所需的自定义逻辑以按设备进行过滤,然后确保 NOW 在提供的日期内?

到目前为止,我的尝试是基于货币字段类型,但现在我已将其恢复为仅将字符串存储在未解析的状态。如果我能够在使用多场功能之前证明我想要的过滤是可能的,那么我就会知道是否值得继续。

还有其他人有编写自定义(多)字段的经验,或者做与我正在做的类似的事情吗?

谢谢!

最佳答案

如果您希望能够在这些范围内进行过滤和搜索,我认为您不会很幸运地存储这样的记录。对我来说,拥有一个更加结构化的文档会更有意义,例如:

id: "1234",
text: ["foobarbaz"],
mobileavailabilitystart: "mobile,2013-09-23T00:00:00Z",
mobileavailabilityend: "2013-09-30T00:00:00Z",
pcavailabilitystart: "2013-09-22T00:00:00Z",
pcavailabilityend: "2013-09-30T00:00:00Z"

在 Lucene/Solr 中的单个字段中索引 csv 行的完整内容将允许您对其执行全文搜索,但不是支持查询其中特定元素的好方法。

关于java - 是否可以在 Solr 中创建一个多值多字段,以允许在查询时自定义逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18855026/

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