创建了mapping 索引结构,其中一个字符串的定义是这样子的。
然后呢我先插入字段orderSn=565656
原始数据就变成了下面这样
然后我想通过java进行模糊查询,代码是这样的
"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的,不知道是什么原因,还是我对分词还没理解到位,希望大神指点迷津
2 个回复
laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net
赞同来自:
你换个中文串试试
lz8086 - es小司机
赞同来自: