个人简介

Echo Blog


江湖无名 安心练剑
  • 从零开始设计一个全文检索查询引擎-02-es 中有表的概念吗?
    数据库 在数据库中,我们有 database 和 table 的概念。 我们在 ES 中有这些概念吗? ES 中表的概念 ES(Elasticsearch)是一个基于Lucene构建的开源搜索引擎,主要用于实时搜索、分析和存储大规模数据。 在Elasticsearch中,没有直接的表(table)的概念,而是通过索引(index)、类型(type)和文档(document)来组织和...
    2022-01-29 13:01:55 | Lucene
  • 从零开始设计一个全文检索查询引擎-01-overview?
    业务背景 现在时代,一个全文检索的需求其实非常常见。 针对博客文章的查询,针对商品信息等检索,针对网页的检索。 这些如果采用传统的 like 模糊查询实现,在数据量特别大的时候,是行不通的。 本引擎简化实现 lucene,实现一个简单易用的全文检索引擎。 核心理念 最核心的功能: 添加字段信息,对应的文本,可以执行分词存储。 根据关键词,可以检索对应的信息。 对应 luce...
    2022-01-29 13:01:55 | Lucene
  • lucene 从零手写实现-05-lucene 核心类源码浅析
    lucene 例子 在Lucene中,权重计算是由 Similarity 类及其子类负责的。 以下是一个简单的Java示例,演示如何使用Lucene的TFIDFSimilarity来计算文档的权重。 请注意,以下示例使用Lucene的版本为8.x。 具体实现可能会根据Lucene版本而有所不同。 首先,你需要添加Lucene的依赖: <!-- Add Lucene depe...
    2022-01-29 13:01:55 | Lucene
  • lucene 从零手写实现-04-design 如何设计 lucene 全文检索
    chat 如果想实现一个简易版本的 lucene,有哪些核心功能要实现? Lucene是一个强大的全文检索引擎,实现一个简易版本的Lucene需要考虑以下核心功能: 分词(Tokenization): 将文本拆分成词语的过程。实现一个简单的分词器,将文本分解为基本的单词或词元。 建立倒排索引(Inverted Index): 将文档中的词语映射到其所...
    2022-01-29 13:01:55 | Lucene
  • lucene 从零手写实现-03-Query Parser Syntax Link icon
    概述 尽管 Lucene 提供了通过其 API 创建自定义查询的功能,但它还通过查询解析器提供了一个丰富的查询语言,这是一个 lexer,它使用 JavaCC 将字符串解释为 Lucene 查询。 通常,查询解析器语法可能会在版本之间发生更改。本页面描述了当前版本的语法。如果您使用 Lucene 的不同版本,请查阅与您使用的版本一起分发的 docs/queryparsersyntax.h...
    2022-01-29 13:01:55 | Lucene
  • lucene 从零手写实现-02-Search and Scoring in Lucene Introduction to how Lucene scores documents.
    搜索基础 Lucene提供多种查询实现,大多数位于此包或queries模块中。 这些实现可以以多种方式组合,提供复杂的查询功能,同时提供有关匹配发生在文档集合中的位置的信息。 下面的”查询类”部分突出显示了一些更重要的查询类。 有关实现自己的查询类的详细信息,请参阅下面的”自定义查询 - 专家级别”。 要执行搜索,应用程序通常调用IndexSearcher.search(Query...
    2022-01-29 13:01:55 | Lucene
  • lucene 从零手写实现-01-overview
    说明 ES 在检索方面至关重要,核心就是基于 lucene。我们自下而上学习,逐步升入,解开 lucene 的面纱。 官网简介 Apache Lucene™ 9.9.1 文档 Lucene 是一个用于 Java 的全文搜索引擎。Lucene 不是一个完整的应用程序,而是一个代码库和 API,可以轻松地用于向应用程序添加搜索功能。 这是 Apache Lucene 9.9.1 的官方...
    2022-01-29 13:01:55 | Lucene
  • Lucene Tutorial-08-Lucene 搜索引擎入门教程排序 sorting
    在本章中,我们将研究Lucene默认提供的搜索结果排序顺序,或者根据需要进行操控。 按相关性排序 这是Lucene使用的默认排序模式。Lucene按照最相关的搜索结果排在顶部。 private void sortUsingRelevance(String searchQuery) throws IOException, ParseException { searcher =...
    2022-01-29 13:01:55 | Lucene