赞
踩
目录
2.2.9、 ids搜索(id集合查询)(ids query)
- <elasticsearch.version>7.12.1</elasticsearch.version>
-
- <dependency>
- <groupId>org.elasticsearch.client</groupId>
- <artifactId>elasticsearch-rest-high-level-client</artifactId>
- <version>${elasticsearch.version}</version>
- <exclusions>
- <exclusion>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- PUT /yuangong
- {
- "settings": {},
- "mappings": {
- "properties": {
- "name": {
- "type": "text",
- "analyzer": "ik_max_word"
- },
- "alias": {
- "type": "text"
- },
- "age": {
- "type": "integer"
- },
- "sex": {
- "type": "keyword"
- },
- "phone": {
- "type": "text"
- },
- "title": {
- "type": "text",
- "analyzer": "ik_max_word"
- },
- "slogan": {
- "type": "text"
- }
- }
- }
- }
-
-
- POST /yuangong/_doc/
- {
- "name": "张三三",
- "alias": "小张",
- "age": 28,
- "sex": "男",
- "phone": 183xxxx0000,
- "title": "初级Java开发",
- "slogan": "苟富贵,勿相忘"
- }
-
- POST /yuangong/_doc/
- {
- "name": "李四",
- "alias": "小四",
- "age": 25,
- "sex": "男",
- "phone": 183xxxx0001,
- "title": "高级Java开发",
- "slogan": "行路难,行路难,多歧路,今安在"
- }
-
- POST /yuangong/_doc/
- {
- "name": "王五",
- "alias": "五哥",
- "age": 30,
- "sex": "男",
- "phone": 183xxxxx0002,
- "title": "资深Java开发",
- "slogan": "逾期感慨路难行,不如马上出发"
- }
-
- POST /yuangong/_doc/
- {
- "name": "王六",
- "alias": "名与",
- "age": 28,
- "sex": "男",
- "phone": 183xxxx0003,
- "title": "高级前端开发",
- "slogan": "超越自己"
- }
-
- POST /yuangong/_doc/
- {
- "name": "王狗蛋",
- "alias": "狗蛋",
- "age": 31,
- "sex": "男",
- "phone": 183xxxx0004,
- "title": "高级产品经理",
- "slogan": "明哲保身"
- }
-
- POST /yuangong/_doc/
- {
- "name": "王麻子",
- "alias": "逍遥子",
- "age": 30,
- "sex": "女",
- "phone": 183xxxx0005,
- "title": "资深业务专家",
- "slogan": "鹏之大不知其几千里也"
- }
-
- POST /yuangong/_doc/
- {
- "name": "周二",
- "alias": "二子",
- "age": 22,
- "sex": "男",
- "phone": 18300000006,
- "title": "初级测试开发",
- "slogan": "冷冷的冰雨在我脸上胡乱的拍"
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
和数据类型有关
(1)如果被查询的字段是keywork,查询的时候只能全量匹配,不会被拆分
(2)如果查询字段类型是text,查询的值会根据查询字段的分词器进行分词
如:如果没有设置分词器,张三三会拆成张、三、三,匹配出包含【张】或者【三】或者【三】的数据
如:如果设置IK分词器,
"name": {"type": "text","analyzer": "ik_max_word"} |
张三三会拆成张三、三三,匹配出包含【张三】或者【三三】的数据
如:如果设置IK分词器,三三会拆成三三,匹配出包含【三三】的数据
(3)上面使用的是默认的operator默认OR, 设置operator为AND的时候
如:如果没有设置分词器,张三三会拆成张、三、三,匹配出包含【张】并且【三】并且【三】的数据
如:如果设置IK分词器,张三三会拆成张三、三三,匹配出包含【张三】并且【三三】的数据
如:如果设置IK分词器,三三会拆成三三,匹配出包含【三三】的数据
- public void matchQuery() throws IOException {
- // 搜索请求对象
- SearchRequest searchRequest = new SearchRequest("yuangong");
- // 搜索源构建对象
- SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
- MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("name", "三三").operator(Operator.OR);
- doSearch(searchRequest,sea
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。