标签: search solr indexing
在构建搜索查询和执行搜索时,在编制索引时对字段应用提升而不是执行此操作有什么好处?
例如,我可以在向索引添加文档时对“标题”字段应用提升,或者在使用(title:test)^10之类的查询进行搜索时指定提升。两者似乎都会达到同样的目的,我想知道是否有任何理由或好处以一种方式而不是另一种方式。
(title:test)^10
答案 0 :(得分:7)
请参阅this了解差异(来自Lucene FAQ,但也适用于Solr)
索引时间字段提升是一种表达诸如“此文档的标题价值是大多数文档标题的两倍”之类的方式。查询时间提升是一种表达“我关心我的查询的这个子句上的匹配的方式是我对查询的其他子句的匹配的两倍”。 如果在每个文档上设置索引时间字段提升都没有价值。
索引时间字段提升是一种表达诸如“此文档的标题价值是大多数文档标题的两倍”之类的方式。查询时间提升是一种表达“我关心我的查询的这个子句上的匹配的方式是我对查询的其他子句的匹配的两倍”。
如果在每个文档上设置索引时间字段提升都没有价值。
索引时间提升需要norms,这也将启用字段长度规范化。根据您的使用情况,这可能是“消极”或“不关心”。
索引时间提升稍微快一点,但我认为差异可以忽略不计,由于提供的灵活性,查询时间提升几乎总是更好的选择(如果你想改变权重,则不需要重新索引) )。