【发布时间】:2014-11-19 08:32:26
【问题描述】:
背景:
- solr 4.10;
- linux/java - 我猜他们在这一点上是无关紧要的;
我有这个词:ABCDEF。我需要找到名称(字段:NAME)与ABCDEF 有相同数量的字母的所有文档。示例:ABCDEF 应该匹配 4 个字母匹配:
- 本身(
ABCDEF、ABCD、BCDE等); - 各种排列:
B..A.DE...、..F..A.DE...- 这里的点是除ABCDEF之外的其他字母。
我会尝试使用正则表达式(例如:^(<em>.?)([ABCDEF] (.</em>?)){4}$),但这也将匹配 A..A..B..C(A 出现两次),我不需要这个。
字段类型为string。但是,添加另一个要以不同方式标记和索引的字段不会有问题。
此外,模糊搜索/匹配不是一个选项 - 因为我需要在匹配的字段中出现这些确切的字母。
有什么想法吗?
谢谢!
【问题讨论】:
-
您能否给出您的场景中的任何用例,以便我知道您到底想做什么。几个月前,我在处理 solr 时也遇到了类似的情况。
-
嗯,这很简单:我有一本书的名字,如果有一本书以相同的 2 个字母开头(比如说)并且它有 3 个其他字母,我需要在 solr 中搜索与原名通用。其他3个字母的位置不重要,但不能与开头的2个字母重叠。