当前位置: 首页 > news >正文

flashfxp怎么上传网站镇江久一信息技术有限公司

flashfxp怎么上传网站,镇江久一信息技术有限公司,0基础学做网站教程,花都个性设计商城网站建设es就是json请求体代替字符串查询 dsl查询和过滤,一个模糊查询,一个非模糊查询 must,should 做模糊查询的,里面都是match,根据查询内容进行匹配,filter过滤,term词元查询,就是等值查…

es就是json请求体代替字符串查询

dsl查询和过滤,一个模糊查询,一个非模糊查询

must,should 做模糊查询的,里面都是match,根据查询内容进行匹配,filter过滤,term词元查询,就是等值查询。range   

  • query : 查询,所有的查询条件在query里面

  • bool : 组合搜索bool可以组合多个查询条件为一个查询对象,这里包含了 DSL查询和DSL过滤的条件

  • must : 必须匹配 :与(must) 或(should) 非(must_not)

  • match:分词匹配查询,会对查询条件分词 , multi_match :多字段匹配

  • filter: 过滤条件

  • term:词元查询,不会对查询条件分词

  • from,size :分页

  • _source :查询结果中需要哪些列

  • sort:排序

分词器:

什么叫分词,在全文检索的理论中,通过关键字查询文档索引进行匹配

倒排索引,正派索引

正排索引,就是一个一个匹配,然后赛选数据。

倒排索引:根据分词器进行分词,语义转换,排序,分组操作生成词元,词元对应文档id

操作es,首先要获取客户端,所以我们要工具类,拿到客户端。

es为什么查询快,因为基于倒排索引,然后就问你倒排索引,非常热点的面试题。

分词器作用

数据的查询是否精准和分词器有很大关系,它默认是英文的分词器

中文的分词器

IK分词器

ES对中文做分词器,默认是英文分词器,10年了还是IK分词器。

要写上,anlyzer:“ik smart”

ik 分词器中有个config文件夹,加上自己想要分词的词语即可。

解压后放到Es插件中

mappering 映射 都是自动给我们创建的,有默认mappering

给的什么数据,就自动解析,默认映射类型。

详细映射写法

analyzer   索引分词器,索引创建时使用的分词器

search_analyzer:  搜索改字段的值,传入的查询内容的分词器。

多字段索引:当对该字段需要使用多种索引模式时使用。如:城市搜索 New York"city":"city":{ "type": "text", "analyzer": "ik_smart", "fields": { "raw": { "type": "keyword" } } } 解释:相当于给 city取了一个别名 city.raw,city的类型为text , city.raw的类型keyword 搜索 city分词 ; 搜索city.raw 不分词那么以后搜索过滤和排序就可以使用city.raw字段名 |

相当于又是text又是keyword?

排序不分词,相当于多了个别名。

默认文档映射

public class ESClientUtil {public static TransportClient getClient(){TransportClient client = null;Settings settings = Settings.builder().put("cluster.name", "elasticsearch").build();try {client = new PreBuiltTransportClient(settings).addTransportAddress(new TransportAddress(InetAddress.getByName("127.0.0.1"), 9300));} catch (UnknownHostException e) {e.printStackTrace();}return client;}}

API结合Es

简单的增删改查,就不讲了吧,大概流程都是差不多,都是获取的客户端.方法,增删改查的。

先批量插入100条数据,做测试用的

    @Testpublic void test4(){
//        批量新增100次TransportClient client = esClientUtil.getClient();BulkRequestBuilder bulkRequestBuilder = client.prepareBulk("shopcar99", "user");for (int i = 0; i < 100; i++) {IndexRequestBuilder indexRequestBuilder = client.prepareIndex("shopcar99", "user", i + "");HashMap<String, Object> map = new HashMap<>();map.put("id",i);map.put("name","zhang"+i);map.put("sex",i%2==0?"n":"nv");map.put("age",26+i);map.put("intro",i+"qweqeq");indexRequestBuilder.setSource(map);bulkRequestBuilder.add(indexRequestBuilder);}BulkResponse bulkItemResponses = bulkRequestBuilder.get();System.out.println(bulkItemResponses);}

DSL查询+DSL过滤

主要的层级关系

query -> bool -> must -> match

先去那query,再去拿bool,分词是must-》match

filter->range

把层级理清楚了,代码就懂了。

    @Testpublic void test5(){TransportClient client = esClientUtil.getClient();SearchRequestBuilder requestBuilder = client.prepareSearch("shopcar99");SearchRequestBuilder user = requestBuilder.setTypes("user");
//        3分页查询,排序,指定查询字段,查询条件
//        分页requestBuilder.setFrom(0);requestBuilder.setSize(10);
//        paixurequestBuilder.addSort("age",SortOrder.ASC);
//        第一个字段叫做包含的 会查出第一个参数中设置的字段
//        第二个参数 exclude 排除  就是排除掉第二个参数中的字段,其他字段全部都要查出来。String [] include = {"id","name","age","sex","intro"};requestBuilder.setFetchSource(include,null);
//        为什么要用bool,
//        query -> bool -> must -> match
//        bool,直接拿到bool那个层级
//        分词区间等级查询,must->matchBoolQueryBuilder boolQuery = QueryBuilders.boolQuery();List<QueryBuilder> must = boolQuery.must();
//        模糊查询
//        must.add(QueryBuilders.matchQuery("intro","1"));MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("intro", "qweqeq");must.add(matchQueryBuilder);
//        bool->filter->rangeList<QueryBuilder> filter = boolQuery.filter();QueryBuilders.rangeQuery("age").gte(30).lte(70);//等值查询TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("sex", "n");filter.add(termQueryBuilder);requestBuilder.setQuery(boolQuery);SearchResponse searchResponse = requestBuilder.get();SearchHits hits = searchResponse.getHits();System.out.println(hits.getTotalHits());SearchHit[] hits1 = hits.getHits();
//        hits里面还有hits,这里面就是数据for (SearchHit documentFields : hits1) {System.out.println(documentFields.getSourceAsMap());}client.close();}

http://www.yayakq.cn/news/252169/

相关文章:

  • 济南谷歌推广成都自然排名优化
  • 为企业设计网站企业网站开发怎么样
  • 泰安网站建设哪家好如何自己搭建网站
  • 十堰建设网站首页做网站排名的公司有哪些
  • 高效网站建设揭阳网站制作计划
  • 国内网站免备案医疗网站设计图
  • 厦门 外贸网站非常成功的网站
  • 网站文站加入别人网站的链接是否对自己网站不好wordpress积分
  • 网站首页下拉广告凯里做网站的公司
  • 做网站哪家好公司灵山招聘网灵山英才网做灵山专业的招聘网站
  • 杭州制作网站的公司简介网站可以做参考文献吗
  • 网站开发后期维护更新织梦网站wap
  • 自己名下备案的网站四川建设厅网站招聘
  • 开源镜像网站怎么做去除关于wordpress
  • 做图的模板下载网站有哪些内容如何做网站的映射
  • 简洁风格的网站模板免费下载vs做的网站源代码
  • 网站建设平台赚钱跨平台app开发工具
  • 织梦 网站搬家建设公司logo
  • dedecms调取友情链接 网站类型建设农业网站
  • 深圳建设网站排名做行政关注什么类型的网站
  • 如何把网站推广出题库制作助手app
  • 重庆网站模板建站网站个性化制作
  • 太原提高网站排名php网站开发试卷
  • 台州企业建站系统郝友做的网站
  • 上海柘中建设股份有限公司网站做网站能创业吗
  • 莱芜高端网站设计建设宁波网站优化体验
  • 怎样让百度搜索到自己的网站信息推广服务
  • 个人做二次元网站怎么赚钱建行互联网站
  • 江苏网站建设哪家好文字生成器在线制作
  • 沙河做网站培训课程网站