Elasticsearch分词与查询问题

使用ik分词器,存有两条记录
1、name:"花牛苹果300g"
2、name:"花牛"

然后做fuzzy查询
QueryBuilder qb = QueryBuilders.fuzzyQuery(
"name",
"花牛"
);

    SearchResponse sResponse = Tool.CLIENT.prepareSearch(indexName).setTypes(typeName).setQuery(qb).get();
    logger.info(sResponse);

结果一条记录都没有

把关键词"花牛"换成"花苹果","牛苹果"都能搜到第一条记录"花牛苹果300g"(这个比较容易理解)

不理解的是为什么用"花牛"做关键词,什么都搜不到
使用"http://ip:port/indexName/_analyze?analyzer=ik&pretty=true&text=花牛苹果"查看分词结果如下

{
"tokens" : [ {
"token" : "花",
"start_offset" : 0,
"end_offset" : 1,
"type" : "CN_CHAR",
"position" : 0
}, {
"token" : "牛",
"start_offset" : 1,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 1
}, {
"token" : "苹果",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 2
} ]
}
难道因为"花牛"不是一个词的原因,但可以理解成两个但字词啊,用fuzzy为什么就搜不到,求大神解释,或者指一个解决方案

0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ElasticSearch 记一次分词导致的查询不准确问题
es term 结果不符合预期es 使用term进行精确匹配时发现,并不能正确得找到想要的值。比如明明有某个field的值为-1,在term查询时得到结果为空GET /my_index/_search{  "query": {    "term": {      "code": "-1"    }      }}{  "took": 2,  "timed_out": false,  &qu
elasticsearch分词聚合查询demo
我们在通过elasticsearch查询text类型的字段时,我们使用aggs进行聚合某个text类型field。这时elasticsearch会自动进行分词将分词后的结果进行聚合。获取每一个分词出现在文档的文档个数。注意:是文档的次数不是文档中分词出现的次数,也就是说即便某个词在某个文档中出现了多次,但是只记录这个词的doc_count次数为1. 查询语句例子: GET voice*/_se
elasticSearch 分词器踩的坑
elasticSearch 接入ik分词器踩的坑,记录下
Elasticsearch根据自定义符号分词
1、新建索引{ "settings": { "index": { "number_of_shards": "5", "number_of_replicas": "1", "mappings": { "myType": { "properties": {
elasticsearch分词时按照逗号分词
在做项目的时候 对类似于 这种标签进行分词处理的时候 建筑,摄影,机械,IT,旅游 ik分词器会自动将IT过滤,导致查询IT的时候无法查询相关文档 如何解决,重新定义分词规则,可以按照逗号 “,”来分词 将词分为 建筑 摄影 机械 IT 旅游 效果如下 GET shenbioffice_1/doc/174629/_termve...
Elasticsearch如何实现筛选功能(设置字段不分词和聚合操作)
0 起因 中文分词中比较常用的分词器是es-ik,建立索引的方式如下: 这里我们为index personList新建了两个字段:name和district,注意索引名称必须是小写 (以下格式都是在kibana上做的) PUT /person_list { "mappings": { "info": { "properties": { "name": { ...
Elasticsearch 全字段搜索_all,query_string查询,不进行分词
最近在使用ELasitcsearch的时候,需要用到关键字搜索,因为是全字段搜索,就需要使用_all字段的query_string进行搜索。 但是在使用的时候,遇到问题了。我们的业务并不需要分词,我在各个字段也设置了,not_analyzed。但是在使用query_string对_all字段进行查询的时候, 发现结果是分词之后,赶紧找问题。。最后在官网找到这么一段话: Remember th
elasticsearch 查看分词效果
ElasticSearch 查看某个字段数据的分词结果
GET /${index}/${type}/${id}/_termvectors?fields=${fields_name}
ElasticSearch查看分词结果
 如下:GET googleplay/app/com.pearlabyss.blackdesertm/_termvectors?fields=name_krGET your_index/your_type/your_id/_termvectors?fields=your_fieldsName
elasticsearch 利用ik分词搜索
1.不使用ik分词的情况 map "article": { "properties": { "author": { "store": true, "type": "string" }, "id": {
Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词。例如: [html] view plain copy curl -XPOST "http://loca
Elasticsearch默认提供的分词器,会把每个汉字分开,而不是我们想要的根据关键词来分词。例如: [html] view plain copy curl -XPOST  "http://localhost:9200/userinfo/_analyze?analyzer=standard&pretty=true&text=我是中国人"   我们
ElasticSearch速学 - 全文检索、分词器、过滤器
今天我们要来学习ElasticSearch的搜索方面的api,在开始之前,为了便于演示,我们先要创建一些索引数据。 Search APIs官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/5.3/search.html1、按name搜索,搜索jackGET blog/users/_search?q=name:jack结果如
Elasticsearch初探(3)——简单查询与中文分词
一、简单查询 1.1 查询全部 请求方式: GET 请求路径: ES服务的IP:端口/索引名/{分组,可省略}/_search 以上篇文章建立的索引为例,搜索结果如下: { "took": 0, "timed_out": false, "_shards": { "total": 5, "successful": 5, "sk.
Elasticsearch分词索引机制
Elasticsearch分词索引机制
Elasticsearch全文检索:根据关键词对全文查询检索,关键词也分词处理
之前看过了solr的全文检索工具,原理比较简单,理解起来也快;这次我们项目上要求用Elasticsearch实现全文检索,据说这个插件功能更厉害,但是也没有具体研究过;这里就省略了es的部署过程和集成springboot的方法了,直接附上我的后台查询代码; import com.pridecn.file.domain.EsFileInfo; import com.pridecn.file.s...
ElasticSearch如何不分词完全匹配搜索
最近在做一个查询系统,用到了ES,版本是6.1。 场景:通过用户姓名搜索用户列表,名字必须完全匹配。如 输入 “贾跃” 不会检索出”贾跃亭“,输入 ”马云“ 不会检索出马云云。 6.0之前的操作: PUT /<index_name>/_mapping { <type_name>: { ...
elasticsearch通配符模糊查询返回无结果
一、问题描述在实现一个字段模糊查询的时候,日志索引下的title字段可以模糊查询。但是在另一个站点索引下title字段不可以模糊查询,输入一个词可以查询出结果,输入多个词语组合没有结果,整个标题输入也没有结果。二、分析1、分析代码后发现是查询条件的问题。最开始设置的处理条件时,两个搜索始终...
Elasticsearch中的分词介绍
1、概述 在我们初次使用Elasticsearch查询的时候,有时会很困惑,为什么我存储的一段String数据,却查询不到?为什么输入了汉语单词,只能一个字一个字的匹配?等这些都与是否分词、使用什么分词器有关。1.1 分词概念 首先说说什么是分词器吧! 比如“分词介绍”: 如果是标准分词器,会把它拆分成“分”,“词”,“介”,“绍”。 如果使用一些汉语的分词器,则会分析成“分词”,“介绍”。
elasticsearch实现中文分词和拼音分词混合查询+CompletionSuggestion
引言之前已经介绍了如何搭建elasticsearch服务端和简单的索引创建,和中文分词的支持。今天我们来说一说如何实现elasticsearch同时实现中文分词和pinyin分词。并且实现类似百度搜索栏的搜索建议的功能。混合查询实现混合查询有很多方式,这里介绍我认为是一个偷懒的方法,就是为你要拼音搜索的字段提供两个额外的字段,一个是全拼字段,一个是首字母缩写字段。我这里用的是官网的Employee的
elasticsearch分词检索的match-query匹配过程分析
1. 模拟字符串数据存储localhost:9200/yigo-redist.1/_analyze?analyzer=default&text=全能片(前)---TRW-GDB7891AT刹车片自带报警线,无单独报警线号码,卡仕欧,卡仕欧,乘用车,刹车片    索引为`yigo-redist.1`    使用了索引`yigo-redist.1`中的分词器(`analyzer`) `defa...
elasticsearch-analysis-ik2.x增加连续数字字母英语智能分词、动态词库刷新支持elasticsearch2.x以上
elasticsearch-analysis-ik根据elasticsearch-analysis-ik2.2.0基础上修改,支持elasticsearch2.2.0(已测)。增加连续数字、字母、英语及其组合智能分词(ik_smart、ik_max_word、ik_indistinct、ik_smart_indistinct启用)支持lucence5.x以上版本。 文件说明:本zip包含IKAnalyzer的src及elasticsearch可运行插件plugins两部分。 使用说明:修改src源码后可通过IKAnalzyerDemo、LuceneIndexAndSearchDemo测试分词及检索。将编译后jar包替换plugins中相应jar包即可使用。如:http://localhost:9200/xxx/_analyze?analyzer=ik_indistinct&pretty=true&text=这是个测试例子china1688
ES中增加大小写不敏感的分词器配置
1. 在50和52的 config/elasticsearch.yml 中增加以下配置 index:   analysis:     analyzer:       string_lowercase:         tokenizer: keyword         filter: lowercase 2. 重启es 3. 创建一个测试 index: test {     "mappi...
elasticsearch获取分词结果
原创于 【模棱博客】ES 中默认配置 IK 后,通过 Rest HTTP 的方式我们可以进行得到分词结果。那么在 Spring Boot 和提供的客户端依赖 spring-data-elasticsearch 中如何获取到分词结果。加入依赖 pom.xmlorg.springframework.bootspring-boot-starter-data-elasticsearch在 applicat...
IK分词组件大小写的问题
IK分词器在加载词典时, 词典中的大小写字符加载到内存时一律变为小写, 但是在分词时大小写是不会转换的, 所以就有以下情况发生: 当词典中有"HL定理", 对"HL定理的应用"分词时是不能分出"HL定理"的, 处理办法:在讲要分词的句子输入分词器前, 先将所有的大些字母转化为小写, 这样分词出来的就是 "hl定理"
Elasticsearch 之(12)query string的分词,修改分词器以及自定义分词器
query string分词query string必须以和index建立时相同的analyzer进行分词query string对exact value和full text的区别对待 (第10节中详细阐述过)date:exact value_all:full text比如我们有一个document,其中有一个field,包含的value是:hello you and me,建立倒排索引我们要搜索...
elasticsearch的分词和head安装使用
Elasticsearch教程(一),全程直播(小白级别)Elasticsearch教程(二),IK分词器安装Elasticsearch教程(三),IK分词器安装 (极速版)Elasticsearch安装(四), elasticsearch head 插件安装和使用。Elasticsearch教程(五) elasticsearch Mapping的创建Elasticsearch教程(六) elas
ElasticSearch简单搜索程序+分词(中文和拼音)
es的注意事项:不能用root用户启动。                         如果是虚拟机启动使用,在安装5.0版本以上,需要修改一些参数。                         es用户需要对es文件夹有权限。                         修改配置文件,记得检查日志和数据路径。                          记得给es端口开防火墙,或...
ElasticSearch多个字段分词查询高亮显示
ElasticSearch关键字查询,将关键字分词后查询,多个字段,查询出来字段高亮显示。 查询方法如下:public List<NewsInfo> searcher2(String key, String indexId, String type) { List<NewsInfo> newsInfos= new ArrayList<NewsInfo>(); try
ElasticSearch搜索服务器与IK分词器
ElasticSearch搜索服务器1.java语言全文检索技术2.ElasticSearch 安装配置使用入门 Window系统下载zip版本,linux系统下载tar版本 下载解压之后 bin 存放elasticSearch 运行命令 config 存放配置文件 data 存放数据 lib 存放elsticSearch运行依赖jar包 logs 存放日志 modul
ElasticSearch各种查询对象Query的使用
ElasticSearch各种查询对象Query的使用 ElasticSearch提供QueryBuilders.queryStringQuery(要搜索的内容)查询方法,对所有字段进行分词查询。 分词查询SearchResponse searchResponse = client.prepareSearch("blog1") .setTypes("article").s
ElasticSerach之分词器进阶-短语搜索不准确bug及修复实现
在ElasticSearch中,针对全文检索,我们都会采用分词的方式进行搜索,常用的分词器比如ansj,ik等,在使用了这些分词器后,中文搜索效果得到较好的改善,但是,也在一些不显眼的方面暴露出分词器与lucene不够兼容的问题,最终导致搜索结果不准确,比较典型的如短语搜索.      为了更清晰的描述问题,我们做个如下实验: 1.随机抽取包含“新能源” 且 “的数据 M 条 2.设置样本中
elastic search配置ik分词及pinyin分词使搜索同时支持中文和拼音搜索
有这样一个需求:对于某个中文field进行ik分词,并对ik分词后的结果进行pinyin分词,这样我通过中文和英文都可以对此field进行搜索。 比如说“道路挖掘”,分词结果是道路 和 挖掘,其拼音应该是daolu和wajue,那么我通过daolu或道路应该都能搜索到这条记录。 如何解决呢?1. 先下载ik分词和pinyin分词,并放到esplugins相应目录中通过kibanaGET /_cat...
elasticsearch设置中文分词
由于elasticsearch基于lucene,所以天然地就多了许多lucene上的中文分词的支持,比如 IK, Paoding, MMSEG4J等lucene中文分词原理上都能在elasticsearch上使用。当然前提是有elasticsearch的插件。 至于插件怎么开发,这里有一片文章介绍:http://log.medcl.net/item/2011/07/diving-into-elast
Elasticsearch 使用中文分词
本文演示了如何使用IK Analysis 插件来实现在 Elasticsearch 中的中文分词功能。
Spring中使用ElasticSearch实现中文分词全文搜索
1,创建Index: 需要使用全文索引的字段,需要添加analyzer属性 PUT /industry_index { &quot;settings&quot;: { &quot;refresh_interval&quot;: &quot;5s&quot;, &quot;number_of_shards&quot; : 3, &quot;number_of_replicas&quot; : 2, &quot;analysis&quot; : {
elasticsearch搜索中文分词理解、类似SQL语句中的"LIKE”条件的模糊搜索以及忽略大小写搜索
01》不进行分词的索引建立:URL:es_index_test{  &quot;settings&quot;: {    &quot;index&quot;: {      &quot;number_of_shards&quot;: &quot;4&quot;,      &quot;number_of_replicas&quot;: &quot;1&quot;    }  },  &quot;mappings&quot;: {    &quot;es_index_type_test&quot;: {   
ElasticSearch.net第四步-查询详解
注意:以下命令都是使用sense测试(ElasticSearch第二步-CRUD之Sense),且数据都已经使用过IK分词。 以下测试数据来源于文档(db_test/person) 需要注意的是下面的id是文档的ID,不是elasticsearch生成的_id,删除文档需要用_id { "id": "0959ab1c-47bf-4417-904c-e5bc774ce730"
ElasticSearch测试、IK分词简单测试(PHP)
以下全是测试代码:如有需要了解安装 ElasticSearch和IK分词的可参考:https://blog.csdn.net/weixin_42579642/article/details/84317099 use Elasticsearch\ClientBuilder; class ElasticController extends Controller { public funct...
elasticsearch 英文数字组合字符串模糊检索
不分词,然后用wildcard查询 { &quot;query&quot;: { &quot;wildcard&quot;: { &quot;字段名&quot;: &quot;*123*&quot; } } }
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 python深度学习分词 java 深度学习分词