Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 无抖动的常开模式匹配服务_String_Algorithm_Architecture_String Matching - Fatal编程技术网

String 无抖动的常开模式匹配服务

String 无抖动的常开模式匹配服务,string,algorithm,architecture,string-matching,String,Algorithm,Architecture,String Matching,我正在考虑实施一个过滤数据的系统。这依赖于大型数据集的快速模式匹配(我认为是Aho-Corasick)。模式将是固定字符串。这可能在1000-100000条记录的范围内-对于关系数据库来说不是很大,但是对于内存中的图形来说是很大的。性能的关键(无论底层算法如何)是创建参考数据集的适当表示。数据集将随时间变化 我的问题是如何最好地将其设计为一个解决方案,以便更新数据集不会中断服务的使用。更新不必立即反映到服务客户端 是否有一种快速字符串匹配算法,它支持在不进行完全重新编译的情况下对数据集进行临时更

我正在考虑实施一个过滤数据的系统。这依赖于大型数据集的快速模式匹配(我认为是Aho-Corasick)。模式将是固定字符串。这可能在1000-100000条记录的范围内-对于关系数据库来说不是很大,但是对于内存中的图形来说是很大的。性能的关键(无论底层算法如何)是创建参考数据集的适当表示。数据集将随时间变化

我的问题是如何最好地将其设计为一个解决方案,以便更新数据集不会中断服务的使用。更新不必立即反映到服务客户端

是否有一种快速字符串匹配算法,它支持在不进行完全重新编译的情况下对数据集进行临时更改

如果做不到这一点,我的唯一选择可能是将前端服务与后端匹配引擎分离,并在我想要更改数据集时启动新的后端引擎/切换


有更优雅的解决方案吗?

为什么不使用支持该解决方案的数据库?您在考虑什么数据库?关系型或普通密钥库数据库的速度会慢几个数量级。例如elasticsearcherm,不是。Elasticsearch只是一个NoSQL数据库,具有自动基于单词的索引功能-不仅与模式匹配不同,它仍然太慢了。确实有,但是它说在像DNAW这样的小字母表上会慢。为什么不使用支持它的数据库呢?你在想什么数据库?关系型或普通密钥库数据库的速度会慢几个数量级。例如elasticsearcherm,不是。Elasticsearch只是一个NoSQL数据库,具有自动基于单词的索引功能-不仅与模式匹配不同,它仍然太慢了。有,但它说,对于像dna这样的小字母表的东西,它会很慢