结构化数据:具有固定格式或有限长度的数据,如数据库,元数据等。
非结构化数据(全文数据):指不定长或无固定格式的数据,如 互联网数据、邮件,Word文档
非结构化数据顺序扫描很慢,结构化搜索相对较快。所以要将非结构化数据进行一定的拆分,将其变成有规律的数据。
非结构化数据搜索方式
- 顺序扫描法:顺序扫描每个文档的内容,看看是否有要搜索的关键字,实现查找文档的功能,也就是根据文档找词。
- 反向索引法:提前将搜索的关键字建成索引,然后再根据索引查找文档,也就是根据词找文档。
这种先建立索引,再对索引进行搜索文档的过程就叫全文搜索(对全部数据进行扫描,匹配关键词,找到所需要的文档)。
全文搜索场景
- 搜索引擎
- 站内搜索
- 系统文件搜索
全文搜索相关技术
1、Lucene
2、Solr
3、ES:可以使用rest方式的http请求,进行远程API的调用
Solr、ES比较:
- Solr利用zookeeper进行分布式管理,而es自身带有分布式协调管理功能
- Solr支持更多格式的数据,es仅支持json文件格式
- Solr官方提供的功能更多,而es本身更注重于核心功能,高级功能多有第三方插件提供
- Solr在传统的搜索应用中表现好于es,但在处理实时搜索应用时效率明显低于es