提问:布和纸怕什么?

创建索引无法进行模糊搜索

Elasticsearch | 作者 | 发布于2017年08月23日 | 阅读数:2442

创建了mapping 索引结构,其中一个字符串的定义是这样子的。
"orderSn":{
"type": "string",
"store": "yes",
"analyzer": "english"
}。

然后呢我先插入字段orderSn=565656
原始数据就变成了下面这样
{
"_index": "createindex",
"_type": "order",
"_id": "2",
"_version": 1,
"_score": 1,
"_source": {
"orderSn": "565656"
}
}

然后我想通过java进行模糊查询,代码是这样的
public void queryFuzzyByCondition(p){
QueryBuilder queryBuilder = null;

queryBuilder = QueryBuilders.fuzzyQuery("orderSn","56");
SearchResponse response = client.prepareSearch(esIndex).setQuery(queryBuilder)
.execute().actionGet();
System.out.println(response);

}

但是返回结果是搜索不到对应的数据,照理说应该能搜到orderSn 为565656的,不知道是什么原因,还是我对分词还没理解到位,希望大神指点迷津
已邀请:

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

你用的2.x版本吧,不确认你这个56串能否匹配到。分词主要针对中英文串。
你换个中文串试试

lz8086 - es小司机

赞同来自:

你要想模糊查找以56开头的文档,应该用wildcard查询

要回复问题请先登录注册