正则表达式允许使用如下所示的模式匹配语法。我正在尝试实现一个功能强大的搜索工具,尽可能多地实现这些功能。有人告诉我,edismax 是最灵活的工具。下面哪些模式匹配表达式可以用 edismax 完成?我能比edismax做得更好吗?您能否建议我可以使用哪些过滤器和解析器补丁来实现此功能?如果我认为 Solr 可以在这些类型的搜索中实现可接受的性能(即服务器端处理时间),我是在做梦吗?
来自mysql的正则表达式语法和示例
- ^ 匹配字符串的开头。
'fofo' REGEXP '^fo' => true
- $ 匹配字符串的结尾。
'fo\no' REGEXP '^fo\no$' => true
- * 0-无限通配符。
'Baaaan' REGEXP 'Ba*n' => true
- ? 0-1 通配符。
'Baan' REGEXP '^Ba?n => false'
- + 1-无限通配符。
'Bn' REGEXP 'Ba+n' => false
- | 或者。
'pi' REGEXP 'pi|apa' => true
- ()* 序列匹配。
'pipi' REGEXP '^(pi)*$' => true
- [a-dX], [^a-dX] 字符范围/集
'aXbc' REGEXP '[a-dXYZ]' => true
- {n} 或 {m,n} 基数表示法
'abcde' REGEXP 'a[bcd]{3}e' => true
- [:character_class:]
'justalnums' REGEXP '[[:alnum:]]+' => true