【发布时间】:2014-04-17 04:00:02
【问题描述】:
我有一个使用 Python 的 MySQL 数据库,其中包含三星电视、三星 Galaxy 手机等产品的一些条目。现在,如果用户搜索三星电视或只是电视,有没有办法返回条目三星电视?
像 Solr 或 Haystack 这样的全文搜索库是否支持这些功能?如果没有,那我该如何进行呢?
谢谢。
【问题讨论】:
我有一个使用 Python 的 MySQL 数据库,其中包含三星电视、三星 Galaxy 手机等产品的一些条目。现在,如果用户搜索三星电视或只是电视,有没有办法返回条目三星电视?
像 Solr 或 Haystack 这样的全文搜索库是否支持这些功能?如果没有,那我该如何进行呢?
谢谢。
【问题讨论】:
是的,Solr 肯定会让你做到这一点以及更多。你可以开始Here
SolrCloud 是向最终用户提供高可用性的一种非常好的方式。
【讨论】:
您应该查看您的分析仪的the SynonymFilterFactory。阅读文档时,您会发现这部分听起来很像您描述的场景。
即使您不担心多词同义词,idf 差异仍然使索引时间同义词成为一个好主意。考虑以下场景:
- 具有“文本”字段的索引,在查询时使用 SynonymFilter 与同义词 TV、Televesion 和 expand="true"
- 包含术语“text:TV”的数千个文档
- 数百个包含术语“text:Television”的文档
您应该记住为索引和查询时间设置单独的分析器,如此 SO 问题How to make solr synonyms work 中所述。
【讨论】: