更有效地显示搜索结果



我想实现各种电子商务商店提供的自动完成功能。功能非常简单,当你键入一些字符时,它就会开始显示相关的建议
我使用solr(django-haystack)实现了它,使用haystack.query.SearchQuerySet中提供的自动完成方法。基本上,我会得到一个按分数排序的结果列表。将前n个结果显示为建议
Solr文档包含$product_name、$category_name和其他字段。所以我生成的结果看起来像"in"的列表
更改类别名称时出现问题。如果我更改类别名称,我必须更新属于该特定类别的所有产品,以在自动完成中反映这些更改(针对该类别的产品更新solr中的所有文档)
另一种方法是在solr文档中只放置带有product的类别的id。在这种情况下,我每次都要查找类别名称,这是不有效的。有其他有效的方法吗?

由于您正在更改底层数据,因此必须向SOLR提供相同的数据。

有不同的方法可以做到这一点:

  1. 更新数据库,并重新索引-优点:足够简单,缺点:索引时间可能很大
  2. 同时更新数据库和解决方案-优点:快速更新,几乎是即时的,缺点:可能导致数据不一致(如果一次更新失败)
  3. 更新数据库,并在Solr中安排增量导入。这就像是介于两者之间的中间地带

我推荐第三种方法,但这需要一些预先的模式设计。在DataImportHandler的上下文中,在此处阅读有关delta导入的更多信息。

最新更新