前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

lucence

作者头像
radaren
发布2018-08-28 14:59:48
9650
发布2018-08-28 14:59:48
举报

借助基础的lucence框架理解搜索引擎的原理~~ ref: Lucene in Action:

信息超负荷问题解决方案: 新的用户接口/智能代理 Lucene是一个高性能,可伸缩的信息搜索库,可以为应用程序添加索引和搜索能力. 版本: java/Perl/Python/C++/net 搜索引擎的核心是索引 搜索的质量用精确度和召回率来描述,召回率衡量系统搜索到相关文档的能力,精确度描述过滤不相关的能力

正文摘要文件(存储域,名称,偏移位置,域数据) 倒排信息文件(字典,文本,所在域,索引,词频) 顺排信息文件(词向量索引,向量域信息) 打分相关文件

实现:

  1. LRUcache基于linkedhashmap,多线程需要用collections.synchronized.map包装一下
  2. 默认打分公式基于空间向量模型(Query->weight->scorer->sumScorer)

对结构化数据搜索:SQL,元数据,windows搜索对文件名,类型,修改时间 对非结构化数据搜索:windows搜索,grep,搜索引擎–>全文搜索:顺序扫描法,索引法

反向索引: 字符串到文件的映射(词典->倒排表)

创建索引:

  1. Tokenizer分词: 文档->单词,去标点符号,去停词
  2. Linguistic Processor语言处理组件: 处理词元(小写,词根stemming/lemmatization)
  3. Indexer:索引组件: 将Term创建字典.排序,合并为倒排链表

搜索:

  1. 用户输入查询语句(AND/OR/NOT)
  2. 词法分析,语法分析,语言处理(同indexer)
  3. 搜索索引,负荷语法树的文档(链表合并->做差)
  4. 文档和查询语句的相关性(relevance)排序 a. 计算词的权重tf, df b. 空间向量模型判断VSM文档的相关性 http://blog.csdn.net/forfuture1978/archive/2009/10/22/4711308.aspx 盘古分词(lucene .net2.9)
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Elasticsearch Service
腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档