在构建搜索查询和执行搜索时,在索引时对字段应用boost而不是这样做有什么好处?
例如,我可以在将文档添加到索引时对"title“字段应用boost,或者在使用(title:test)^10这样的查询执行搜索时指定boost。两者似乎都会实现相同的事情,我想知道是否有任何理由或好处,以一种方式,而不是另一种方式。
(title:test)^10
发布于 2012-02-23 00:28:11
参见this了解不同之处(来自Lucene FAQ,但也适用于Solr )
索引时间域提升是一种表达方式,比如“这个文档的标题是大多数文档标题的两倍”。查询时间提升是一种表达“我关心查询的这个子句上的匹配是查询的其他子句上匹配的两倍”的一种方式。
如果您在每个文档上都设置了索引时间字段提升,那么它们就毫无价值。
索引时间提升需要norms,这也将启用字段长度标准化。根据你的用例,这对你来说可能是“负面的”或“不关心”。
索引时间提升稍微快一些,但我认为差异可以忽略不计,查询时间提升几乎总是更好的选择,因为它们提供了灵活性(如果您想更改权重,则不需要重新索引)。
https://stackoverflow.com/questions/9398286
相似问题