以只读模式运行Solr

wyn*_*ynz 6 solr

我想我在这里遗漏了一些明显的东西.我不得不想象很多人向其他开发人员开放他们的Solr服务器,并且不希望他们能够修改索引.

solrconfig.xml中是否有东西可以设置为有效地使索引成为只读?

更新澄清: 我的目标是将Solr与另一个应用程序管理的现有Lucene索引一起使用.这工作正常,但我想确保Solr永远不会尝试写入此索引.

Mau*_*fer 7

将Solr实例暴露给公共互联网是一个坏主意.即使您可以剥离某些组件以使其成为只读,但它的设计并未考虑安全性,它本身就是用作内部服务,就像您不会公开RDBMS一样.

Solr Security wiki页面:

首先,Solr不关心文档级别或通信级别的安全性.强烈建议对包含Solr的应用程序服务器进行防火墙处理,以便能够访问Solr的唯一客户端是您自己的.Solr的默认/示例安装允许任何有权访问它的客户端添加,更新和删除文档(当然还有搜索/读取),包括访问Solr配置和模式文件以及管理用户界面.

甚至ajax-solr,一个用于javascript的Solr客户端意味着在浏览器中运行,建议通过代理与Solr交谈.

guardian.co.uk为例:众所周知,他们使用Solr进行搜索,但他们构建了一个API来让其他人访问他们的内容.通过这种方式,他们可以准确地定义控制他们希望人们搜索事物的内容和方式.

否则,任何脚本小子都可以为DoS您的Solr实例编写一个简单的循环,从而关闭您的站点.


Pas*_*imo 2

您可能只需删除 solrconfig.xml 中定义 solr.XmlUpdateRequestHandler 的行即可。

复制是一种在能够进行索引的同时设置只读的好方法。只需设置一个具有受限访问权限的主服务器和一个只读的从服务器(通过从配置中删除 XmlUpdateRequestHandler)。从站将从主站复制,但不会直接接受任何索引。

更新

我刚刚读到在 Solr 1.4 中,您可以禁用组件。我刚刚在 /update requestHandler 上尝试过,但无法再建立索引。