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

一个上线的网站需要怎么做电商平台发展现状与趋势

一个上线的网站需要怎么做,电商平台发展现状与趋势,做网站技术含量,下沙做网站在Thinkphp中调用ES,如果自己手写json格式的query肯定是很麻烦的。我这里使用的是ONGR ElasticsearchDSL 构建 ES 查询。ongr ElasticsearchDSL 的开源项目地址:GitHub - ongr-io/ElasticsearchDSL: Query DSL library for Elasticsearch。ONGR Elastics…

在Thinkphp中调用ES,如果自己手写json格式的query肯定是很麻烦的。我这里使用的是ONGR ElasticsearchDSL 构建 ES 查询。ongr ElasticsearchDSL 的开源项目地址:GitHub - ongr-io/ElasticsearchDSL: Query DSL library for Elasticsearch。ONGR ElasticsearchDSL 提供了一种更灵活、更易于维护的 Elasticsearch 查询构建方式,将复杂的 API 操作抽象为简洁的 DSL 语法。本文将深入探讨如何利用 ONGR ElasticsearchDSL 库构建 ES 查询,并实现高效、灵活的数据检索。

安装 ONGR ElasticsearchDSL 库:

安装前要先确认自己的ES版本,一定要选择ES对应的ElasticsearchDSL 库,对应版本列表如下:

我们使用composer安装,在自己的thinkphp项目目录下修改composer.json添加对应的ElasticsearchDSL 库版本,然后执行composer命令安装:

composer require ongr/elasticsearch-dsl

安装完成后就是在thinkphp项目中使用ElasticsearchDSL 了,示例代码:

 //根据需要引入对应的包
//引入bool查询
use ONGR\ElasticsearchDSL\Query\Compound\BoolQuery;
//引入match查询
use ONGR\ElasticsearchDSL\Query\FullText\MatchQuery;
//引入matchphrase查询
use ONGR\ElasticsearchDSL\Query\FullText\MatchPhraseQuery;
//引入term条件查询
use ONGR\ElasticsearchDSL\Query\TermLevel\TermQuery;
//引入多个term条件查询
use ONGR\ElasticsearchDSL\Query\TermLevel\TermsQuery;
//引入range查询
use ONGR\ElasticsearchDSL\Query\TermLevel\RangeQuery;
//引入wildcard查询
use ONGR\ElasticsearchDSL\Query\TermLevel\WildcardQuery;
//引入Search构建搜索
use ONGR\ElasticsearchDSL\Search;
//引入排序字段
use ONGR\ElasticsearchDSL\Sort\FieldSort;//首先创建一个ES搜索实例
$hosts = [['host' => '127.0.0.1', // 必填项'port' => 9200, // 不设置,默认9200,'scheme' => 'http', // 不设置, 默认http'user' => 'elastic','pass' => '123456'
]];
$esClient = ClientBuilder::create()->setHosts($hosts)->build();
//构建一个bool查询
$boolQuery = new BoolQuery();
//构建一个MatchPhrase查询,比如搜索title字段含“大模型”的条件
$matchPhraseQuery = new MatchPhraseQuery('title',"大模型",['analyzer'=>'ik_smart']);//这里使用了ik_smart分词器
//将这个条件加入到搜索中
$boolQuery->add($matchPhraseQuery, 'must');
$search->addQuery($boolQuery); 
//如果要加filter限制条件 可以使用addPostFilter
//比如加上时间范围限制,创建一个RangeQuery
$lasttime = time()-86400;//24小时前
$filterQuery = new BoolQuery();
$rangeQuery = new RangeQuery('addtime',['gte' => $lasttime]);
$filterQuery->add($rangeQuery, 'must');
//对应search修改为:
$search->addQuery($boolQuery)->addPostFilter($filterQuery); 
//添加排序条件
$sortFields = ['date','_score'];//按时间和评分排序
for($sortFields as $sortField){$fieldSort = new FieldSort($sortField, null, ['order' => FieldSort::DESC])$search->addSort($fieldSort);
}
//设置分页条件
$search->setFrom(($current_page-1)*$pagesize);
$search->setSize($pagesize);
//构建查询query
$query = ['index' => $indx_name, //对应的ES索引名称'body' => $search->toArray(),
];
//执行查询
$response = $esClient->search($query);
//返回结果集
if ($response['timed_out'] == false) {//转换结果集合$collection = new Collection(array_column($response['hits']['hits'],'_source'));$total = $response['hits']['total']['value'];
}

上面代码主要使用 BoolQuery 构建了多条件查询,使用 ONGR ElasticsearchDSL 库构建 ES 查询 更易于阅读和修改,提高代码可维护性。

文章地址 :Thinkphp使用ElasticsearchES查询 – AI小站 (aisites.cn)

http://www.shuangfujiaoyu.com/news/62875.html

相关文章:

  • 做网站赚钱难南京最大网站建设公司
  • 中山顺的网站建设百度搜索使用方法
  • 自己有域名如何做网站郑州网站优化
  • wordpress防垃圾评论优化设计五年级下册语文答案
  • 使用java做直播网站有哪些北京网络排名优化
  • 可以直接做ppt的网站吗下载百度浏览器
  • 关于网站开发的学校网址收录入口
  • 贷款织梦网站模版网站服务器查询
  • 做阿里巴巴网站卖货咋样媒体公关
  • 网站 多服务器嘉兴优化公司
  • 网站建设有哪些步骤如何做好网络推广工作
  • 无锡 公共建设中心网站百度搜索广告投放
  • 大亚湾住建局网站建设工程规划怎样免费推广自己的网站
  • 二手交易网站怎么做优化大师绿色版
  • 做数学题的网站有吗谷歌推广方案
  • 成都做app定制开发多少钱南宁seo公司
  • 仙桃网站制作网站设计搜索引擎推广方案
  • 有没有专门搞网站上线的公司西地那非片多少钱一盒
  • 之江汇学校网站建设百度网站推广排名
  • 比较好的网站建设公司电话如何做外贸网站的推广
  • 查企业的网站有哪些建站系统源码
  • 山西人工智能建站系统软件石家庄市人民政府官网
  • 深圳网站建设公司联营销型网站建设的主要流程包括
  • 南京中建乡旅建设投资有限公司网站网站制作建设公司
  • 网站 优化 件东莞百度seo在哪里
  • 娄底seo排名搜索引擎seo排名优化
  • 外贸网站怎么做推广网络营销的常用工具
  • b北京网站建设专注于品牌营销服务
  • 个人网站推广平台大全百姓网推广电话
  • 苏州艺术家网站建设安卓手机性能优化软件