高效的Java复杂模式字符串搜索

时间:2014-03-16 11:43:20

标签: java string algorithm search

我有大约500-1000个实体,每个实体都有一个名称和字符串内容。要查找这些实体是如何连接的,必须搜索每个内容字段中的每个名称。可以编辑实体,因此我可能必须通过再次在所有内容字段中搜索其名称来重建已编辑实体的连接。

确切的字符串匹配(.indexOf或.contains)不是一个选项,因为还有其他规则:

  • 名称可以包含多个单词和预定义的特殊字符(_,/, - ,,, ......)
  • 名称可能被特殊字符包围,仍然会被识别
  • 名称可以通过预定义的多个结尾(s,es,...)结束,并且仍然可以被识别

示例名称 精美的苹果汁,苹果,app,_n,n

示例内容: 应用程序就像精美的apple juice_n

匹配所有示例名称

编辑:对规则2的澄清:匹配不得类似" appxxy"或其他乱七八糟但却被空白(或特殊字符)分隔的单词。

我查看过各种可能的解决方案,例如Aho-Corasick,使用regexstring-searchregex patternApache Lucene或使用自定义ScannerWordDetector。 但是,当我选择哪一个最适合我的目的和最佳表现时,我迷失了,因为我在编程方面经验不足。

0 个答案:

没有答案