Lucene.NET + Azure + AzureDirectory还是其他什么?

时间:2010-12-29 14:26:56

标签: full-text-search azure lucene.net azure-sql-database

早上好。

我目前正在开发一个最初将在带有SQL2k8R2的物理服务器上托管的项目,但看起来我们正朝着云和Azure方向发展...因为SQL Azure目前不支持全文索引,我一直在用Lucene.NET查看后端存储AzureDirectory project。这将起作用的方式是更新将进入并排队。一旦处理完毕,它们将被放置在ToIndex队列中,这将启动Lucene.NET索引。我只是想知道是否会有更好的方法来做到这一点?我们不需要在这个项目中使用Azure,所以如果某个地方有更好的解决方案,请告诉我们...托管的主要要求是它在欧洲...(Azure和亚马逊数据中心在都柏林很方便,在美国的RackSpace不是那么方便)。

感谢。

3 个答案:

答案 0 :(得分:1)

我没有使用过那个项目,但看起来很有希望。据我所知,基本问题是Lucene需要一个文件系统。我看到了其他两个可能的解决方案(基本上只是做了库的工作):

  1. 使用Azure云端存储和辅助角色
  2. 使用云端硬盘存储,但使用虚拟机(如果使用辅助角色存在配置问题)
  3. http://go.microsoft.com/?linkid=9710117

    SQLite也提供全文搜索,但它有相同的基本问题 - 它需要一个文件系统: http://www.sqlite.org/fts3.html

答案 1 :(得分:0)

我有另一种解决方案,但它更具激进性,而且更具概念性。

您可以使用azure表存储创建自己的索引。根据文档中的每个单词创建分区,因为所有表都在分区键上编制索引,每个单词搜索应该很快,并且只需要进行多个单词搜索的内存连接。

答案 2 :(得分:0)

只要您的Lucene索引小于1GB,您就可以将其作为Azure网站托管。

最近,当我重新编写Ask Jon Skeet作为自包含的Azure网站托管时,我这样做了。在更新Lucene索引之前,它使用WebBackgrounder轮询Stackoverflow API以进行更改。