在 facet.contains Solr 中使用正则表达式

Using regex in facet.contains Solr

我将 solr 字段存储为 -

record1 --> colorDimension : "Purple|91"
record2 --> colorDimension : "Purple|974|91"
record3 --> colorDimension : "Purple|974"

我需要以包含 "Purple" 和数字“91”的方式对此 colorDimension 字段进行分面。

我定位的结果是 -

Purple|91 = 2

我一直在寻找 facet.contains 但没有找到任何使用正则表达式的示例。

PS - 如果有人选择否决这个问题,请在评论中说明原因,以便我可以在这里更正错误。

尝试使用此模式:

Purple\|(?:\d+\|)*91(?:\||$)

Demo

你应该在索引时扩展它们,这样你就有了一个分别用于 Purple|91Purple|974 的标记。 Faceting 很快,因为它可以对标记进行计数,而无需 运行 针对每个标记的正则表达式来查找实际值。

您可能必须在您的代码中执行此操作,因为我不认为您可以使模式正则表达式分词器为给定的前缀/组吐出多个标记。