假设我想使用Solr Lucene索引我的商店。使用Solr对不同类型的实体/对象进行索引Lucene
我有很多类型的实体:产品,产品评论,文章
我如何得到我的Lucene索引的类型,但每种类型具有不同的模式?
假设我想使用Solr Lucene索引我的商店。使用Solr对不同类型的实体/对象进行索引Lucene
我有很多类型的实体:产品,产品评论,文章
我如何得到我的Lucene索引的类型,但每种类型具有不同的模式?
您可能需要3个名为Products,ProductReviews和Articles的索引。每个索引可以有自己的模式。 Lucene和关系数据库方法的区别在于db中的一行大致为转换为Lucene中的文档。注意:每个文档都可以有自己的模式(这是与关系数据库的另一个区别)。
使用Lucene/Solr,每个文档不需要为每个字段设置一个值。在同一个模式中,可以为实体A设置一组字段,为实体B设置另一组字段,并根据实体填充相应的字段。
使用Solr,您也可以选择使用多核。每个核心都有自己的模式。你可以为每个实体定义一个核心。
我建议你创建你的索引,使你所有的实体具有或多或少相同的基本字段:title, content, url, uuid, entity_type, entity_sourcename
等等。如果你的每个实体都有一组唯一的对应索引字段,你将很难构建查询同时搜索所有实体,并且您的结果视图可能会变得非常混乱。如果您需要某个特定实体的特定字段,请将其添加并根据其entity_type为此实体执行特殊逻辑。
我从经验中发现:我们正在管理一个超过10个不同实体的索引,这种方法的工作方式就像魅力一样。
P.S.其他一些简单的建议。
多核是小心使用的方法。有了像你这样简单的模式,这是一个更好的方式来做buru推荐。 这意味着要找到您的不同实体之间的共同领域,然后将只有一个或多个实体将使用的字段。然后,您可以添加一个字段“type”或“type_id”,这将表明您的实体是否为产品,产品评论...
这样做会使您拥有唯一索引并快速处理查询。