RavenDB快速子字符串搜索

我可能有数万亿个字符串序列。 我正在寻找快速子字符串搜索。

我创建了一个索引。 当我试图获得一些结果( x => x.StartWith )时,在300万个对象数据库上花费大约2秒。

5亿个物体需要多长时间?

是否可以更快地进行RavenDB搜索?

  store.DatabaseCommands.PutIndex("KeyPhraseInfoByWord", new Raven.Client.Indexes.IndexDefinitionBuilder { Map = wordStats => from keyPhraseInfo in keyPhraseInfoCollection select new { keyPhraseInfo.Key }, Analyzers = { { x => x.Key, "SimpleAnalyzer"} } }); 

Nier0,你可以使用RavenDB进行非常快速的NGram搜索,是的。 请参阅: https : //gist.github.com/1669767

Ayende的优秀NGram分析器似乎是为RaceDB的旧版Lucene而制作的,所以我为像我这样的迷茫的人制作了它的更新版本。 请参阅: http : //pastebin.com/a78XzGDk 。 所有功劳都归功于Ayende。

要使用它,请将其放入库中,构建它并将其放入RavenDB目录中Server下的Analyzers-folder中。 然后创建一个这样的索引:

 public class PostByNameIndex : AbstractIndexCreationTask { public PostByNameIndex() { Map = posts => posts.Select(x => new {x.Name}); Analyze(x => x.Name, typeof(NGramAnalyzer).AssemblyQualifiedName); } } 

但正如我所说,所有的信任和感谢艾恩德创造了这一点。