liu1234567890  

一款强大的开源搜索引擎,能够实现在海量信息中快速检索到满足条件的数据,同时还可以实现分页,高亮显示等功能。可以日志统计分析,系统监控等。

官网:https://lucene.apache.org/

正向索引:先通过文件名找到具体的文件,在获取文件中的内容的过程。

倒排索引(面试题)

从文件的内容查找,得到包含这些内容的文件列表,再得到文件对应的信息,如文件名、作者、文件大小、创建时间等。

1.把搜索内容根据算法进行分词,得到一个词条列表。

2.将词条列表当作key,包含该词条的文档id列表作为值,形成一张表

3、词条是唯一的,所以给词条创建索引,提高搜索效率

4、通过词条查询,得到文档ID,再通过文档ID查询到具体的文档

总结:把搜索内容根据算法进行分词,得到一个词条表【词条:文档ID】,给词条创建索引。把要搜索的内容进行分词,根据分词后的结果去词条表中根据词条进行匹配,得到文档ID,再通过文档ID返回具体的文档信息。

ES相关概念对比MySQL(面试题)

es中的索引(index),就是文档的集合,类似于数据库中的一张表(table)
es中的文档(document),就是一条条数据,类似于数据库中的行(row)
es中的字段(Field),就是JSON文档中的字段,类似于数据库中的列(Column)
es中的映射(mapping)是索引中文档的约束,例如字段类型约束,类似于数据库表中结构(Schema)。
es中的DSL,DSL是elasticSearch提供的JSON风格的请求语句,用来操作es,实现CRUD

elasticSearch相关依赖

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-high-level-client</artifactId>
</dependency>
<elasticsearch.version>7.12.1</elasticsearch.version>

初始化RestClient

生成配置类bean

@Configuration
@Slf4j
public class EsClient {

    @Bean
    public RestHighLevelClient client(){
        log.warn("创建ES的Rest客户端");
        return new RestHighLevelClient(RestClient.builder(HttpHost.create(ElasticSreachConstant.ES_URL)));
    }
}

这段代码是一个使用Java Spring框架创建Elasticsearch的Rest客户端的方法。它是用来连接并与Elasticsearch进行交互的。通过调用RestHighLevelClient类的构造函数,可以创建一个高级的Rest客户端对象,然后该对象可以用于执行各种Elasticsearch的操作,如索引文档、搜索、删除等。该方法使用了ElasticSreachConstant类中的ES_URL常量作为Elasticsearch的URL地址

至关重要,是开启es和java程序相连接的bean对象。

 

posted on 2023-09-17 19:14  从炼器到天人境  阅读(80)  评论(0)    收藏  举报