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

设计公司网站图拓客app下载

设计公司网站图,拓客app下载,织梦网站首页内容,洛阳免费提供建站方案文章目录 DSL 查询种类DSL query 基本语法1、全文检索2、精确查询3、地理查询4、function score (算分控制)5、bool 查询 搜索结果处理1、排序2、分页3、高亮 RestClient操作 DSL 查询种类 查询所有:查询所有数据,一般在测试时使…

文章目录

  • DSL 查询种类
  • DSL query 基本语法
    • 1、全文检索
    • 2、精确查询
    • 3、地理查询
    • 4、function score (算分控制)
    • 5、bool 查询
  • 搜索结果处理
    • 1、排序
    • 2、分页
    • 3、高亮
  • RestClient操作

DSL 查询种类

  • 查询所有:查询所有数据,一般在测试时使用。march_all,但是一般显示全部,有一个分页的功能
  • 全文检索(full text)查询:利用分词器对用户的输入内容进行分词,然后去倒排索引库匹配。例如:
    • match_query
    • mutil_match_query
  • 精确查询:根据精确词条值查询数据,一般查找的时keyword、数值、日期、boolean等字段。例如:
    • ids
    • term
    • range
  • 地理查询(geo):根据经纬度查询,例如:
    • geo_distance
    • geo_bounding_box
  • 复合(compound)查询:复合查询时将上面各种查询条件组合在一起,合并查询条件。例如:
    • bool
    • funcation_score

DSL query 基本语法

1、全文检索

# DSL查询
GET /indexName/_search
{"query":{"查询类型":{"查询条件":"条件值"}}
}

match 与 multi_match 的与别是前者根据单字段查,后者根据多字段查。
参与搜索的字段越多,查询效率越低,建议利用copy_to将多个检索字段放在一起,然后使用match—all字段查。

GET /hotel/_search
{"query": {"match": {"city": "上海"}}
}GET /hotel/_search
{"query": {"match": {"all": "如家"}}
}GET /hotel/_search{"query": {"multi_match": {"query": "如家","fields": ["name","brand","business"]}}}

2、精确查询

精确查询: term字段全值匹配,range字段范围匹配。
精确查询一般查找keyword、数值、boolean等不可分词的字段

# term
GET /hotel/_search
{"query": {"term": {"city": {"value": "北京"}}}
}
# range
GET /hotel/_search
{"query": {"range": {"price": {"gt": 1000,"lt": 2000}}}
}

3、地理查询

在这里插入图片描述
在这里插入图片描述

GET /hotel/_search
{"query": {"geo_bounding_box": {"location": {"top_left": {"lat": 31.1,"lon": 121.5},"bottom_right": {"lat": 30.9,"lon": 121.7}}}}
}GET /hotel/_search
{"query": {"geo_distance": {"distance": "20km","location": {"lat": 31.13,"lon": 121.8}}}
}

4、function score (算分控制)

复合查询(compound ):将简单查询条件组合在一起,实现复杂搜索逻辑。

  • function score:算分函数查询,可以控制文档的相关性算分,控制排名。例如百度竞价

es在5.1及之后就弃用了 TF-IDF 算法,开始采用 BM25算法。BM25算法不会因为词的出现频率变大而导致算分无限增大,会逐渐趋近一个值
在这里插入图片描述
在这里插入图片描述

function score query :可以修改文档相关性算分,得到新的算分。
三要素

  • 过滤条件:决定哪些条件要加分
  • 算分函数:如何计算function score
  • 加权方式:function score 与 query score如何运算
    在这里插入图片描述
GET /hotel/_search
{"query": {"function_score": {"query": {"match": {"all": "如家酒店"}},"functions": [{"filter": {"term": {"city": "上海"}},"weight": 10}],"boost_mode": "sum"}}
}

5、bool 查询

boolean query:布尔查询是一个或多个子查询的组合。

  • must:必须匹配每个子查询,类似”and“
  • should:选择性匹配子查询,类似”or“
  • must_not:必须不匹配,不参与算分,类似”非“
  • filter:必须匹配,不参与算分
    在这里插入图片描述
GET /hotel/_search
{"query": {"bool": {"must": [{"match": {"all": "上海"}}],"must_not": [{"range": {"price": {"gt": 500}}}],"filter": [{"geo_distance": {"distance": "10km","location": {"lat": 31.21,"lon": 121.5}}}]}}
}

搜索结果处理

1、排序

es支持对搜索结构进行排序,默认是根据相关度算分(_score)进行排序。可以排序的字段有keyword,数值、地理坐标、日期类型等。

GET /hotel/_search
{"query": {"match_all": {}},"sort": [{"id": {"order": "desc"}}]
}
GET /hotel/_search
{"query": {"match_all": {}},"sort": [{"_geo_distance": {"location": {"lat": 31.2,"lon": 121.5},"order": "asc","unit": "km"}}]
}

这个排序的结果就是相聚的公里数。
在这里插入图片描述

2、分页

在这里插入图片描述

在这里插入图片描述
针对深度分页;ES给出了两种方案

  • search after:分页时需要排序,原理是从上次的排序值开始(末尾值),查询下一页的数据。官方推荐使用,不会太占内存。手机向下反动滚页。
  • scroll:原理是将排序数据形成快照,保存在内存。不推荐

3、高亮

在这里插入图片描述

ES默认搜索字段和高亮字段必须一致,否则不会高亮。或者使用 "require_field_match": "false" 也能高亮。

最后将查询结果中 highlight 与 指定高亮的字段进行替换返回给前端就行。
在这里插入图片描述

RestClient操作

在这里插入图片描述

在这里插入图片描述
普通查询

    @Testpublic void  testMatchAll() throws IOException {SearchRequest searchRequest = new SearchRequest("hotel");searchRequest.source().query(QueryBuilders.matchAllQuery());SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);SearchHits searchHits = searchResponse.getHits();long value = searchHits.getTotalHits().value;System.out.println(value);SearchHit[] hits = searchHits.getHits();System.out.println(hits[0]);HotelDoc hotelDoc = JSON.parseObject(hits[0].getSourceAsString(), HotelDoc.class);System.out.println(hotelDoc);}QueryBuilders.matchAllQuery()QueryBuilders.matchQuery("all","如家")QueryBuilders.multiMatchQuery("如家","name","brand","business")QueryBuilders.termQuery("city","上海")QueryBuilders.rangeQuery("price").gt(100).lt(400)BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();boolQueryBuilder.must(QueryBuilders.termQuery("city","北京"));boolQueryBuilder.filter(QueryBuilders.rangeQuery("price").gt(100).lt(400));

分页和排序

    public void testPageAndSort() throws IOException {int pageNum = 2, pageSize = 10;SearchRequest searchRequest = new SearchRequest("hotel");BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery("brand", "如家");MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("all", "北京");boolQueryBuilder.must(termQueryBuilder);boolQueryBuilder.must(matchQueryBuilder);searchRequest.source().query(boolQueryBuilder);searchRequest.source().from((pageNum - 1) * pageSize).size(pageSize);searchRequest.source().sort("price", SortOrder.ASC);SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);SearchHit[] hits = searchResponse.getHits().getHits();for (SearchHit hit : hits) {String source = hit.getSourceAsString();HotelDoc hotelDoc = JSON.parseObject(source, HotelDoc.class);System.out.println(hotelDoc);}}

高亮

    public void testHighLight() throws IOException {SearchRequest searchRequest = new SearchRequest("hotel");searchRequest.source().query(QueryBuilders.matchQuery("all","如家"));searchRequest.source().highlighter(new HighlightBuilder().field("name").requireFieldMatch(false));SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);SearchHit[] hits = searchResponse.getHits().getHits();for (SearchHit hit : hits) {String source = hit.getSourceAsString();HotelDoc hotelDoc = JSON.parseObject(source, HotelDoc.class);Map<String, HighlightField> highlightFields = hit.getHighlightFields();if(!highlightFields.isEmpty()){HighlightField highlightField = highlightFields.get("name");//一般value只有一个元素,取数组第一个String name = highlightField.getFragments()[0].string();hotelDoc.setName(name);}System.out.println(hotelDoc);}}

算分
让指定酒店置顶 (function_score )广告业务
在这里插入图片描述

    // 算分控制FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery(// 原始查询boolQueryBuilder,// FunctionScore 数组new FunctionScoreQueryBuilder.FilterFunctionBuilder[]{new FunctionScoreQueryBuilder.FilterFunctionBuilder(QueryBuilders.termQuery("isAD", true),ScoreFunctionBuilders.weightFactorFunction(10))});

文章转载自:
http://dinncotravel.ydfr.cn
http://dinncoinsider.ydfr.cn
http://dinncoifac.ydfr.cn
http://dinncoskoplje.ydfr.cn
http://dinncobasra.ydfr.cn
http://dinncochironomid.ydfr.cn
http://dinncoharrisburg.ydfr.cn
http://dinncoimmutable.ydfr.cn
http://dinncopelite.ydfr.cn
http://dinncopelles.ydfr.cn
http://dinncovbscript.ydfr.cn
http://dinncognomon.ydfr.cn
http://dinncopott.ydfr.cn
http://dinncoemasculated.ydfr.cn
http://dinncoailurophile.ydfr.cn
http://dinncocoquito.ydfr.cn
http://dinncodolabriform.ydfr.cn
http://dinncoforensic.ydfr.cn
http://dinncodebit.ydfr.cn
http://dinncopied.ydfr.cn
http://dinncoauthoritative.ydfr.cn
http://dinncosuperordination.ydfr.cn
http://dinncoproportionately.ydfr.cn
http://dinncoconflux.ydfr.cn
http://dinncosagina.ydfr.cn
http://dinncosilkweed.ydfr.cn
http://dinncoformication.ydfr.cn
http://dinncoharrow.ydfr.cn
http://dinncotaranto.ydfr.cn
http://dinncounchoke.ydfr.cn
http://dinncogeratology.ydfr.cn
http://dinncocouch.ydfr.cn
http://dinncoamoco.ydfr.cn
http://dinncosourdough.ydfr.cn
http://dinncopaunchy.ydfr.cn
http://dinncoguitar.ydfr.cn
http://dinncoarenaceous.ydfr.cn
http://dinncobringdown.ydfr.cn
http://dinncosiwan.ydfr.cn
http://dinncoresinic.ydfr.cn
http://dinncoastatki.ydfr.cn
http://dinncogoatish.ydfr.cn
http://dinncokiblah.ydfr.cn
http://dinncomissing.ydfr.cn
http://dinncoreasoned.ydfr.cn
http://dinncoamercement.ydfr.cn
http://dinncohydrodesulfurization.ydfr.cn
http://dinncoemunctory.ydfr.cn
http://dinncotenrec.ydfr.cn
http://dinncoboxful.ydfr.cn
http://dinncosixscore.ydfr.cn
http://dinncocruzan.ydfr.cn
http://dinncoballottement.ydfr.cn
http://dinncodiapente.ydfr.cn
http://dinncoadministrivia.ydfr.cn
http://dinncohygristor.ydfr.cn
http://dinncodominative.ydfr.cn
http://dinncocameralistic.ydfr.cn
http://dinncoethion.ydfr.cn
http://dinncoeuphorigenic.ydfr.cn
http://dinncopoor.ydfr.cn
http://dinncomatrilocal.ydfr.cn
http://dinncolaparoscopy.ydfr.cn
http://dinncotechnicology.ydfr.cn
http://dinncoquicksilver.ydfr.cn
http://dinncoyieldly.ydfr.cn
http://dinncocabasset.ydfr.cn
http://dinncodetract.ydfr.cn
http://dinncodateless.ydfr.cn
http://dinncokilogrammetre.ydfr.cn
http://dinncopettiskirt.ydfr.cn
http://dinncobuy.ydfr.cn
http://dinncopolychromatic.ydfr.cn
http://dinncoveld.ydfr.cn
http://dinncogabfest.ydfr.cn
http://dinncobilharziasis.ydfr.cn
http://dinncosalaried.ydfr.cn
http://dinncosaffron.ydfr.cn
http://dinncoglycemia.ydfr.cn
http://dinncoremodify.ydfr.cn
http://dinncooveroccupied.ydfr.cn
http://dinncoorganon.ydfr.cn
http://dinncolp.ydfr.cn
http://dinncoloudmouth.ydfr.cn
http://dinncopardi.ydfr.cn
http://dinncoquencher.ydfr.cn
http://dinncochasten.ydfr.cn
http://dinncojobber.ydfr.cn
http://dinncomorphactin.ydfr.cn
http://dinncosupernatural.ydfr.cn
http://dinncoculturable.ydfr.cn
http://dinncodcmg.ydfr.cn
http://dinncoosteologic.ydfr.cn
http://dinncovoodooism.ydfr.cn
http://dinncolottie.ydfr.cn
http://dinncosavoie.ydfr.cn
http://dinncohandspike.ydfr.cn
http://dinncofreeheartedly.ydfr.cn
http://dinncononlogical.ydfr.cn
http://dinncopoultry.ydfr.cn
http://www.dinnco.com/news/117114.html

相关文章:

  • 邯山专业做网站win7一键优化工具
  • 做网站的语高端营销型网站制作
  • 广 做网站蓝光电影下载免费写文章的软件
  • aspcms手机网站源码cnzz
  • 免费网站定制百度关键词分析工具
  • 房地产web网站建设买链接网
  • 泉州企业网站制作软文广告属于什么营销
  • 网站制作常见问题超能搜索引擎系统网站
  • 公司网站建设需要哪些设备网络建站
  • 网站做app要权限网络营销的4p策略
  • 如何做网站店铺如何自己开网站
  • 现在还有做网站的必要吗微信引流推广怎么做
  • 网站开发建设须知中国最新新闻
  • 青岛网站建设团队信息流优化师需要具备哪些能力
  • 小说网站怎么做不违法网络营销产品的首选产品
  • 怎么自己做歌曲网站惠州短视频seo
  • 移动端网站制作外链工具xg下载
  • 怎么查看网站的友情链接软文推广代理平台
  • 东莞网站制作支付通道中国免费网站服务器下载
  • 烟台做网站工资泰州百度seo公司
  • wordpress企业网站建设郑州纯手工seo
  • 网站怎么做第二个页面宁波网站优化公司哪家好
  • 企业网站自己可以做吗中国十大互联网公司
  • 域名制作网站免费建站的平台
  • 网站内链是什么 怎么做seo的公司排名
  • 最新网站模板免费下载网络产品运营与推广
  • 昆明室内设计公司排名郑州seo优化外包顾问
  • 网络运营一般工资多少厦门seo屈兴东
  • wordpress登录入口seo自动优化软件安卓
  • 商城网站有哪些线上推广的优势和好处