search - 使用 Solr 实现搜索所有内容

标签 search solr lucene search-engine

搜索各种类型的应用程序如何索引并跟踪数据到其搜索索引中。

最近我一直在研究 Apache Solr,它为搜索带来了惊人的结果。但正在搜索的是特定产品目录部分。由于 Solr 是存储其数据文档,因此我们将可搜索字段索引为 solr 中的文档。我不确定如何使用它来构建各种搜索?我应该如何将数据索引到 Solr 中?

通过搜索一切,我的意思是,搜索不同的模块以获取信息,例如客户、服务、帐户、订单、目录、支持票证等。因此,搜索返回的结果是单个搜索表单的结果,并且用户不知道不需要进入不同的表单来搜索该模块?

我是否需要为每个这样的数据模型构建不同的索引或将它们作为单个文档存储到 solr 中?实现这一目标的最佳策略是什么。

最佳答案

您可以将所有数据存储在单个索引中,每个文档都有一个额外的字段来存储其类型(客户、订单等)。对于模块内搜索,只需将搜索查询限制为该类型的文档即可。对于“搜索全部”功能,请使用 copyField 将每种文档类型中的所有相关字段复制到一个大字段中,然后使用不受约束的文档类型字段进行搜索。

关于search - 使用 Solr 实现搜索所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11708556/

相关文章:

javascript - 表单的输入默认文本

sql - 如何使用sql查找字符串中特定字符的出现次数?

java - 如何使用 Java 在 Solr 中获取索引大小

Solr 反规范化和引用数据的更新

java - 使用 Infinispan 查询 API 时出现 NoSuchMethodError

jQuery 字符搜索

curl - SOLR索引一个远程文件

solr - 使用词干提取时如何基于 rawquerystring 提升 solr 结果

search - 如何使用 4.0.0 版从 lucene 地理(空间)搜索中获取距离?

linux less命令搜索不可见字符