使用 ES (elasticsearch) 搜索中文

1、创建索引
curl -XPUT http://172.16.125.139:9200/ques
2、创建索引类型
curl -XPOST http://172.16.125.139:9200/ques/common/_mapping -H ‘Content-Type:application/json‘ -d ‘{"properties":{"question":{"type":"text","analyzer":"ik_max_word","search_analyzer":"ik_max_word","similarity":"BM25"},"answer":{"type":"text","analyzer":"ik_max_word","search_analyzer":"ik_max_word","similarity":"BM25"}}}‘
3、push 数据
curl -XPOST http://172.16.125.139:9200/ques/common/1 -H ‘Content-Type:application/json‘ -d ‘{"question":"xx", "answer":"xx"}‘
curl -XPOST http://172.16.125.139:9200/ques/common/2 -H ‘Content-Type:application/json‘ -d ‘{"question":"xx", "answer":"xx"}‘
4、搜索
curl -XPOST http://172.16.125.139:9200/ques/common/_search -H ‘Content-Type:application/json‘ -d ‘{"query":{"match": {"question":"xxx"}}}’

备注:

1、该操作是在 es 支持 ik 分词的基础上进行的,可以参考官网https://github.com/medcl/elasticsearch-analysis-ik

2、push、search数据的时候数据都是使用 xx 代替的,实际使用时替换成真是数据即可;

2、这里的相似度使用的是 BM25,也可以替换为 TFIDF

原文地址:https://www.cnblogs.com/shanguanghui/p/9244789.html

时间: 2024-08-30 13:17:50

使用 ES (elasticsearch) 搜索中文的相关文章

Elasticsearch之中文分词器插件es-ik

前提 什么是倒排索引? Elasticsearch之分词器的作用 Elasticsearch之分词器的工作流程 Elasticsearch之停用词 Elasticsearch之中文分词器 Elasticsearch之几个重要的分词器 elasticsearch官方默认的分词插件 1.elasticsearch官方默认的分词插件,对中文分词效果不理想. 比如,我现在,拿个具体实例来展现下,验证为什么,es官网提供的分词插件对中文分词而言,效果差. [[email protected] elasti

网站基于ElasticSearch搜索的优化笔记 PHP

基本情况就是,媒体.试题.分类,媒体可能有多个试题,一个试题可能有多个分类,分类为三级分类加上一个综合属性.通过试题名称.分类等搜索查询媒体. 现在的问题为,搜索结果不精确,部分搜索无结果,ES的数据结构不满足搜索需求.解决方案就是,重构ES数据结构,采用父子关系的方式,建立media和question两个type. 全程使用https://github.com/mobz/elasticsearch-head,这个进行ES的管理和查看,很方便. 从ES的说明可以看出,ES是面向文档,其实所有的数

Elasticsearch之中文分词器插件es-ik的热更新词库

前提 Elasticsearch之中文分词器插件es-ik的自定义词库 先声明,热更新词库,需要用到,web项目和Tomcat.不会的,请移步 Eclipse下Maven新建项目.自动打依赖jar包(包含普通项目和Web项目) Tomcat *的安装和运行(绿色版和安装版都适用) Tomcat的配置文件详解 1: 部署 http 服务在这使用 tomcat7 作为 web 容器, 先下载一个 tomcat7, 然后上传到某一台服务器上(192.168.80.10).再执行以下命令 tar -zx

为Elasticsearch添加中文分词,对比分词器效果

http://keenwon.com/1404.html Elasticsearch中,内置了很多分词器(analyzers),例如standard (标准分词器).english(英文分词)和chinese (中文分词).其中standard 就是无脑的一个一个词(汉字)切分,所以适用范围广,但是精准度低:english 对英文更加智能,可以识别单数负数,大小写,过滤stopwords(例如"the"这个词)等:chinese 效果很差,后面会演示.这次主要玩这几个内容:安装中文分词

elasticsearch搜索提示

elasticsearch搜索提示(补全)接口需要新增suggest字段并设type为:completion,结合到scrapy,修改es_types.py文件: from datetime import datetime from elasticsearch_dsl import DocType, Date, Nested, Boolean, analyzer, InnerObjectWrapper, Completion, Keyword, Text, Integer from elasti

Elasticsearch搜索结果返回不一致问题

一.背景 这周在使用Elasticsearch搜索的时候遇到一个,对于同一个搜索请求,会出现top50返回结果和排序不一致的问题.那么为什么会出现这样的问题? 后来通过百度和google,发现这是因为Elastcisearch的分布式搜索特性导致.Elasticsearch在搜索时,会循环的选择主分片和其副本中的一个来计算和返回搜索结果,而由于主分片和副本中相关统计信息的不同,从而导致了同一个搜索串的评分的不一致,进而导致排序不一样.而造成这种主分片和副本统计信息不一致的具体原因,是因为文档删除

用 mongodb + elasticsearch 实现中文检索

而 elasticsearch 可以很好的支持各种语言的全文检索,但我们暂时又不想切换到 elasticsearch 作为后端数据库. 当然,可以在 web 应用中存储数据的时候,再主动写一份到 elasticsearch,但这无疑污染了原有的业务逻辑. 在 IT 行业,只要有需求的地方,必然早已有了一堆好用或者不好用的开源轮子. 幸运地是,现在已经有了一些转换方案,可以将 mongodb 中的数据自动导入到 elasticsearch 中,让 elasticsearch 提供中文智能检索. 转

通过HTTP RESTful API 操作elasticsearch搜索数据

通过HTTP RESTful API 操作elasticsearch搜索数据

为Elasticsearch添加中文分词

Elasticsearch的中文分词很烂,所以我们需要安装ik.首先从github上下载项目,解压: cd /tmp wget https://github.com/medcl/elasticsearch-analysis-ik/archive/master.zip unzip master.zip cd elasticsearch-analysis-ik/ 然后使用mvn package 命令,编译出jar包 elasticsearch-analysis-ik-1.4.0.jar. mvn p