首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RavenDB快速子串搜索

RavenDB快速子串搜索
EN

Stack Overflow用户
提问于 2012-05-29 06:42:07
回答 2查看 2.3K关注 0票数 6

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

我已经创建了一个索引。当我尝试获取一些结果( x => x.StartWith)时,在300万个对象数据库上大约需要2秒。

处理5亿个对象可能需要多长时间?

有没有可能让RavenDB搜索速度更快?

代码语言:javascript
复制
 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"}
        }
    });
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-29 21:58:43

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

票数 12
EN

Stack Overflow用户

发布于 2013-02-28 20:36:35

Ayende出色的NGram分析器似乎是为比RavenDB现在使用的Lucene旧版本制作的,所以我为像我这样困惑的人做了一个更新版本。请参阅:http://pastebin.com/a78XzGDk所有的功劳都归功于Ayende。

要使用它,请将其放入库中,构建它,并将其放入RavenDB目录中服务器下的Analyzers-文件夹中。然后像这样创建一个索引:

代码语言:javascript
复制
public class PostByNameIndex : AbstractIndexCreationTask<Posts>
{
    public PostByNameIndex()
    {
        Map = posts => posts.Select(x => new {x.Name});
        Analyze(x => x.Name, typeof(NGramAnalyzer).AssemblyQualifiedName);
     }
}

但正如我所说的,所有的荣誉和感谢Ayende创造了这个。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10791164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档