solr比DataImportHandler中的实体更多

时间:2013-07-09 18:42:52

标签: performance solr entity dataimporthandler

当我想使用多个查询和实体索引我的solr数据时,我需要知道推荐的解决方案是什么。 我问,因为我必须在schema.xml配置中添加一个新字段。并且取决于实体(查询)应该有不同的字段定义。

query_one = "select * from car"
query_two = "select * fromm user"

表car和user有不同的字段,所以我应该在schema.xml配置中包含这个小事实(当我准备字段定义时)。

也许有人会为这类问题创建一个新的solr实例?

我发现了一些名为MultiCore的东西。这可以解决我的问题吗?

谢谢

2 个答案:

答案 0 :(得分:0)

Solr不会阻止您在单个集合中托管多个实体 您可以为这两个实体定义字段,并将它们托管在集合中 如果要过滤每个实体的结果,则需要使用标识符来标识实体。

如果您的馆藏很小或者用户与购物车之间存在关系,那么在同一个馆藏中托管它们可能会有所帮助

对于Solr多核检查Answer Solr Multicore基本上是一个允许Solr托管多个内核的设置 这些核心将托管一组完全不同的无关实体 每个表也可以有一个单独的Core。

例如如果您有文档,人物,股票的集合,这些集合是完全不相关的实体,那么您希望在不同的集合中托管

多核设置可以让你

  1. 分别托管不相关的实体,以便它们不会相互影响
  2. 为具有不同行为的每个核心配置不同的配置
  3. 以不同方式对每个核心执行活动(更新数据,加载,重新加载,复制)
  4. 检查核心的大小并相应地配置缓存
  5. 更多的是偏好和要求。

答案 1 :(得分:0)

主要问题是人们是否会一起搜索汽车和用户。如果不是(它们是不同的域),您可以设置多个集合/核心。如果要将它们一起使用(例如搜索出现在汽车和人身上的东西),您可能需要merge them into one index

如果对两种类型都使用单一集合,则可能需要设置返回不同字段集并可能调整搜索的专用请求处理程序。您可以在我的书中看到the multilingual example中的这个(以及更多)的示例。