搜索服务

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 搜索服务

正文


搜索或者全文的检索,在开发项目中扮演者非常重要的角色,虽然Mysql数据库给我们提供了全文搜索的技术,但是我们使用数据库做搜索、做检索响应比较慢,而且也影响我们整个系统的性能。今天,介绍一种比较流行的检索技术:ElasticSearch。


简介


Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。


安装ES


1、第一步

环境准备:

       1. 安装JDK环境:我们的ES需要JDK的环境支持(PS:最新版本的ES已经集成了一个openJdk,但是,我安装的版本是5.5.0,他是没有集成JDK的。)

       2.下载ES软件:这里面有一个小技巧,下载的时候,可以运用某雷下载,感觉速度超快。下载地址:https://www.elastic.co/cn/downloads/elasticsearch 最新的版本是 7.8.0

 2、第二步

配置系统其他的环境:第一次安装的时候,碰到了许多意想不到的事情,比如系统的配置问题以及版本的对应的问题许多许多,不过最后,还是配置成功啦。下面的所有动作均在root用户下配置:

       1.新建用户

useradd
elasticsearchpasswd elasticsearch
密码:elasticsearch

       2.配置/etc/security/limits.conf,在最后位置加上:

* soft nofile 65536
* hard nofile 65536

       3.配置/etc/sysctl.conf

vm.max_map_count=655360
#配置后执行
sysctl -psysctl -p

       4.配置 /etc/security/limits.d/90-nproc.conf

修改
*  soft  nproc  1024
*  soft  nproc  4096


3、第三步

配置好后,我们登陆刚刚创建的用户

su elasticsearch


      1. 配置JVM启动后参数:登陆后,上传我们下载好的软件,解压,之后进入config文件夹,配置JVM我们的启动参数。由于每一个系统内存都是不同的,所以,我们要修改启动参数里面的堆的大小。

           2.配置elasticsearch.yml 文件

# 配置任何IP都可以访问
network.host: 0.0.0.0
# 如果发生下面的错误 再将加入下面的配置,我启动的时候没有遇到这样的错误
# [1]: system call filters failed to install; check the logs and fix your configuration or disable system call filters at your own risk
bootstrap.memory_lock: false
bootstrap.system_call_filter: false


4、启动软件

进入软件的bin目录,执行下面的命令:


./elasticsearch
#  如果没有报错,那么我就配置对了
# 后台执行的模式
./elasticsearch -d


5、浏览器访问或者用crul执行访问


{
  name: "jtyF6Y4",
  cluster_name: "elasticsearch",
  cluster_uuid: "chnpkgldQ-yqyP7dc0eSQA",
  version: {
    number: "5.5.0",
    build_hash: "260387d",
    build_date: "2017-06-30T23:16:05.735Z",
    build_snapshot: false,
    lucene_version: "6.6.0"
  },
  tagline: "You Know, for Search"
}


返回上面的信息,就说明我们配置成功啦。



相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
9天前
|
数据采集 存储 API
手动给docusaurus添加一个搜索
如果algolia不能自动配置的话,我教你手动给docusaurus添加一个搜索
手动给docusaurus添加一个搜索
|
9月前
|
Web App开发 搜索推荐 Windows
一键搜索多个搜索引擎
一键搜索多个搜索引擎
146 0
|
人工智能 自然语言处理 数据库
联合搜索:搜索中的所有需求
现如今各行各业内容和数据量逐年增长,内容碎片化已成为现实问题。各大公司在众多平台上每个方向都有内容。当有如此多的搜索选项时,如何确保用户获得他们想要的信息? 在本文中了解业务方向(在客户服务、营销或运营方面)如何集中搜索以减少客户和团队的搜索工作,并简化内容源之间的可查找性。
166 0
|
移动开发 算法
秒懂算法 | A*搜索
本篇内容包括了A*搜索算法的原理精解以及2个例题。
255 1
秒懂算法 | A*搜索
|
数据采集 搜索推荐 前端开发
11、搜索服务
根据分类、关键字匹配课程名称,课程内容、难度等级搜索,搜索方式为全文搜索,搜索节点分页显示。
65 0
搜索
搜索
81 0
|
存储 缓存 自然语言处理
一切为了搜索
Elasticsearch是​ 基于Lucene搜索架构的一个分布式、RESTful 风格的搜索和数据分析引擎
|
机器学习/深度学习 算法 搜索推荐
DARTS+:DARTS 搜索为何需要早停?
近日,华为诺亚 方舟实验室的作者们提出一种可微分的神经网络架构搜索算法 DARTS+,将早停机制(early stopping)引入到原始的 DARTS[1] 算法中,不仅减小了 DARTS 搜索的时间,而且极大地提升了 DARTS 的性能。相关论文《DARTS+: Improved Differentiable Architecture Search with Early Stopping》已经公开(相关代码稍后也会开源)。
185 0
DARTS+:DARTS 搜索为何需要早停?