微信小程序 ES搜索

先下载es composer

composer require elasticsearch/elasticsearch

先进行判断es中是否有这个索引

$client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
        // 写文档
        $index=['index'=>'title'];
        //判断是否有该索引
        $res=$client->indices()->exists($index);

 没有这个索引添加索引

if($res!=true)
{
    $params = [
        //表名
        'index' => '表名',
        'body' => [
            'settings' => [
                'number_of_shards' => 5,
                'number_of_replicas' => 1
            ],
            'mappings' => [
                '_doc' => [
                    '_source' => [
                        'enabled' => true
                    ],
                    'properties' => [
                        //所需要展示的字符安
                        'name' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word',
                            'search_analyzer' => 'ik_max_word'
                        ],
                        'title' => [
                            'type' => 'text',
                            'analyzer' => 'ik_max_word',
                            'search_analyzer' => 'ik_max_word'
                        ]
                    ]
                ]
            ]
        ]
    ];
    $client->indices()->create($params);
}

 添加数据内容

//添加  
$data=$request->input();
        unset($data['_token']);
        $first=Title::create($data);
 $params = [
            'index' => 'title',
            'type' => '_doc',
            'id' => $first->id,
            'body' => [
                'name' => $first->name,
                'title' => $first->title,
            ],
        ];
        $client->index($params);

//搜索内容

public function index(Request $request)
    {
        //连接es服务
        $client = ClientBuilder::create()->setHosts(['127.0.0.1:9200'])->build();
        $name=$request->input('name');
        //搜索的字段
        if($name)
        {
            $create = [
                'index' => 'title',
                'type' => '_doc',
                'body' => [
                    'query' => [
                        'match' => [
                            'name'=>$name
                        ]
                    ],
                    'highlight' => [//高亮
                        "pre_tags" => ["<span style='color: red'>"],
                        "post_tags" => ["</span>"],
                        "fields" => [
                            "name" => new \StdClass()
                        ]
                    ]
                ],
            ];
            $res=$client->search($create)['hits']['hits'];
            $data=[];
            foreach ($res as $k=>$v){
                $data[$k]['name']=$v['highlight']['name'][0];
                $data[$k]['title']=$v['_source']['title'];
            }

        }else{
            $data=Title::get()->toArray();
        }
       return response()->json(['code'=>200,'msg'=>'请求成功','data'=>$data]);
    }

微信小程序 展示

<rich-text nodes="{{item.name}}"></rich-text>

解析html标签

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序是一种基于微信平台开发的小型应用程序,可以在微信客户端上运行。它使用HTML、CSS和JavaScript等前端技术进行开发,具有快速、便捷、灵活等特点。微信小程序可以让用户在微信内直接使用应用程序的功能,无需下载和安装。它具有简单的界面设计和交互方式,适用于各种不同的应用场景,如电商、社交、游戏等。开发人员可以通过微信小程序开发工具来编写代码,进行调试和发布。 Elasticsearch是一个开源的分布式搜索和分析引擎,基于Lucene库开发。它具有强大的全文检索功能和实时分析能力,支持海量数据的存储和查询。Elasticsearch采用分布式的架构,可以在多台服务器上进行部署,实现高可用性和扩展性。它支持多种数据类型和查询语法,可以进行复杂的搜索和过滤操作。Elasticsearch还提供了RESTful API和Java客户端等接口,方便开发人员进行集成和使用。 Spring Boot是基于Spring框架的一种快速开发框架,简化了Spring应用程序的配置和部署。它提供了自动化的配置和约定优于配置的原则,可以快速搭建Web应用程序。Spring Boot集成了各种常用的功能模块,如数据访问、事务管理、安全认证等,开发人员只需进行简单的配置即可使用。Spring Boot还提供了嵌入式Tomcat服务器,可以方便地进行测试和部署。 结合微信小程序和Elasticsearch Spring Boot,可以实现一种基于微信平台的搜索和推荐功能。首先,开发人员可以使用Elasticsearch建立索引,将数据存储到Elasticsearch中。然后,通过Spring Boot搭建后端服务,提供搜索和推荐的API接口。最后,使用微信小程序开发工具开发前端界面,调用后端API接口进行搜索和推荐操作。这样,用户可以在微信小程序中方便地进行搜索和获取推荐的结果。同时,利用Elasticsearch的全文检索和分析能力,可以提高搜索的准确性和响应速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值