• AzureDirectory Library for Lucene.Net


    Sql Azure不支持全文索引的,所以微软官方推荐的做法是基于lucene来做全文索引,而且也有一个基于Azure Storage的Lucene.Net开源组件,已经支持到了最新的lucene.net 3.0.3。可以在CodePlex上下载到最新代码“AzureDirectory Library for Lucene.Net” http://azuredirectory.codeplex.com/ ,也可以通过NuGet获取。

    在使用过程中,发现检索速度的话,第一次很慢,因为它要把Storage的索引文件同步到本地缓存目录,后面就快了,都是从本地读取。这个机制有个很大的问题,就是如果索引文件大,对本地缓存目录空间大小有较高要求,否则就会出现磁盘空间不足导致的问题。

    建索引的时候,配置好Storage Account和Catalog Name (其实就是Storage的Container),就会将索引文件同步到Storage。

    在使用时建索引过程中,被坑过一次,最开始本地测试索引还是比较顺利,后来传到Azure上,开了个Worker Role,专门建索引,刚开始还好,但过了半天才发现压根就没索引上,索引文件没写入到Azure Storage,去看了一下文档,才发现它建索引实际上上是先建在本地,本地好了后,在indexWriter close的时候,就同步到Storage上去,它默认是本地的临时目录,如果基于WorkerRole,临时目录似乎不能太大,索引一会就出现说磁盘空间不足的异常。于是把缓存目录改成了Worker Role的本地目录,结果如何还需要观察。

    另外它也建议不要去调用indexWriter的optimize()优化操作(Calling Optimize() is a really bad idea because it causes ALL SEGMENTS to be merged into ONE SEGMENT),因为这会将索引文件会合并成为一个很大的索引文件,而这样会导致整个索引文件都要重建,重新下载上传。

    详细说明还是请参考其文档:http://azuredirectory.codeplex.com/

    如果有兴趣体验,可以访问:http://www.openlab.co/search?q=%E8%A5%BF%E5%B7%A5%E5%A4%A7

    目前已经将我自己的网站全部迁移到Azure: Web Role + Sql Azure + Azure Storage + Service Bus

    后面会分享一些迁移过程中遇到的问题和心得。

  • 相关阅读:
    42. Trapping Rain Water
    223. Rectangle Area
    645. Set Mismatch
    541. Reverse String II
    675. Cut Off Trees for Golf Event
    安装 VsCode 插件安装以及配置
    向上取整 向下取整 四舍五入 产生100以内随机数
    JS 判断是否为数字 数字型特殊值
    移动端初始配置,兼容不同浏览器的渲染内核
    Flex移动布局中单行和双行布局的区别以及使用
  • 原文地址:https://www.cnblogs.com/dotey/p/3109905.html
Copyright © 2020-2023  润新知