我有50个值字段,50个布尔值和一个日期字段。为了符合新的GDPR标准,我需要使某些字段无法搜索。在我的情况下,困难的部分是,每个记录需要不可搜索的字段不同。因此,在一种情况下,字段2和5可能受到保护,而在另一个字段中,3和7受到保护。这是布尔人知道的:每个值字段也有一个布尔值,用于定义该字段是否受保护。
所有这些仅适用于日期字段仍在将来的情况。当日期是过去的日期,或者根本没有日期时,无论布尔值如何,该记录的所有字段都可以搜索。
我想到的是每条记录执行不同的查询,具体取决于该记录的日期字段是否在将来。 if(date> today) - > QUERY1 别的 - > QUERY2
其中query1单独检查每个字段,同时考虑匹配的布尔值。这有可能,怎么样?
答案 0 :(得分:0)
对于第一个条件 - 在日期过去之前和之后使用单独的字段进行搜索(如果仍然可以存储值 - 我不太熟悉详细的GDPR要求)。
即。拥有field_1
,field_1_before_date
- 如果在索引文档时布尔值为true,则只提交field_1_before_date
的值。
发出两个单独的查询,一个用于将来获取文档,另一个用于获取过去的文档 - 在第一个中,您将查询的字段限制为field_1_before_date
,而在第二个查询中使用field_1
1}}而不是。
您可以使用_query_
- Using nested queries in Solr:
q=yourfirstquery OR _query_:"your second query"
..应该有效,除非对使用OR进行组合有限制。