Nei*_*ir0 6 c# substring ravendb
我可能有数万亿个字符串序列.我正在寻找快速子字符串搜索.
我创建了一个索引.当我试图获得一些结果(x => x.StartWith)时,在300万个对象数据库上花费大约2秒.
5亿个物体需要多长时间?
是否可以更快地进行RavenDB搜索?
store.DatabaseCommands.PutIndex("KeyPhraseInfoByWord", new Raven.Client.Indexes.IndexDefinitionBuilder<KeyPhraseInfo>
{
Map = wordStats => from keyPhraseInfo in keyPhraseInfoCollection
select new { keyPhraseInfo.Key },
Analyzers =
{
{ x => x.Key, "SimpleAnalyzer"}
}
});
Run Code Online (Sandbox Code Playgroud)
小智 8
Ayende出色的NGram分析器似乎是为RaceDB的旧版Lucene而制作的,所以我为像我这样的迷茫的人制作了它的更新版本.请参阅:http://pastebin.com/a78XzGDk.所有功劳都归功于Ayende.
要使用它,请将其放入库中,构建它并将其放入RavenDB目录中Server下的Analyzers-folder中.然后创建一个这样的索引:
public class PostByNameIndex : AbstractIndexCreationTask<Posts>
{
public PostByNameIndex()
{
Map = posts => posts.Select(x => new {x.Name});
Analyze(x => x.Name, typeof(NGramAnalyzer).AssemblyQualifiedName);
}
}
Run Code Online (Sandbox Code Playgroud)
但正如我所说,所有的信任和感谢艾恩德创造了这一点.