[英]Solr schema design and performance
我有一个包含三个实体的图书数据库:图书,页面和标题(在页面中找到的标题)。 我对模式设计中两种方法之间的性能感到困惑和担忧:
1-将书籍作为文档处理,即书籍字段,具有multiValue的页面字段和具有multiValue的书名字段。 通过这种方法,所有书籍数据都将在一个Solr文档中以非常大的字段表示。
2-将页面作为文档处理,这将导致较小的字段,但会导致大量的文档。
我试图查看此官方资源,但无法为我的问题找到明确的答案。
假设您要获取Solr结果并通过另一个应用程序显示,我将使用最小的项-标题-文档模型,这将使显示结果出现的位置更加容易。 这样做可以最大程度地减少您需要编写的应用程序代码量。 如果您的用户直接查询Solr,则我可以改用Page作为我的文档-大概您是在使用Solr的突出显示功能,然后帮助您的用户确定其搜索词的匹配方式。
对于标题文档,我将按以下方式对模式进行建模:
您可能还需要捕获其他属性,例如作者,发布日期,发布者,但是您在上面没有解释其他信息,因此我将其排除在本示例之外。
然后,文本查询可能涉及Book Name
Title
Book Name
,“ Title
和“ Content
,您可能希望在其中定义一个已索引但未存储的字段,该字段用作schema.xml中<copyField/>
声明的目标,以便于轻松搜索所有内容。三个同时。
对于索引,在不了解更多有关要索引的数据的情况下,我将使用ICU Tokenizer和Snowball Porter词干过滤器 ,并在文本字段上使用语言规范来处理非英语数据-假设所有书籍都使用同一语言。 如果是英语,则使用标准标记器而不是ICU。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.