• PHP系列 | MeiliSearch 轻量搜索引擎入门介绍


    介绍
    MeiliSearch是一个功能强大,快速,开源,易于使用和部署的搜索引擎。搜索和索引都是高度可定制的。允许输入、过滤器和同义词等特性都是开箱即用的。是近两年开源的项目,同样也支持中文分词,在小数据规模下可以实现比ElasticSearch更加快速和易用的搜索体验。

    第 1 步:设置和安装

    我们将从下载和安装 Meil​​isearch 开始。您可以选择在本地安装 Meil​​isearch 或通过云服务部署

    Docker部署

    # Fetch the latest version of Meilisearch image from DockerHub
    docker pull getmeili/meilisearch:latest
    
    # Launch Meilisearch
    docker run -it --rm \
        -p 7700:7700 \
        -v d:/work/meilisearch/data.ms:/data.ms \
        getmeili/meilisearch:latest

    运行Meilisearch

    成功运行 Meil​​isearch 后,您应该会看到以下响应:

     恭喜!您已准备好继续下一步!

    第 2 步:添加文档

    对于这个快速入门,我们将使用PHP作为演示案例

    安装PHP的SDK

    composer require meilisearch/meilisearch-php \
        guzzlehttp/guzzle \
        http-interop/http-factory-guzzle:^1.0
    

    SDK 地址 https://github.com/meilisearch/meilisearch-php/

    添加索引文档

    require_once __DIR__ . '/vendor/autoload.php';
    
    use MeiliSearch\Client;
    
    $client = new Client('http://192.168.3.12:7700');
    
    # An index is where the documents are stored.
    $index = $client->index('movies');
    
    $documents = [
        ['id' => 1,  'title' => 'Carol', 'genres' => ['Romance, Drama']],
        ['id' => 2,  'title' => 'Wonder Woman', 'genres' => ['Action, Adventure']],
        ['id' => 3,  'title' => 'Life of Pi', 'genres' => ['Adventure, Drama']],
        ['id' => 4,  'title' => 'Mad Max: Fury Road', 'genres' => ['Adventure, Science Fiction']],
        ['id' => 5,  'title' => 'Moana', 'genres' => ['Fantasy, Action']],
        ['id' => 6,  'title' => 'Philadelphia', 'genres' => ['Drama']],
    ];
    
    # If the index 'movies' does not exist, Meilisearch creates it when you first add the documents.
    $index->addDocuments($documents); // => { "uid": 0 }

     基础搜索

    $client = new Client('http://192.168.3.12:7700');
    
    # An index is where the documents are stored.
    $index = $client->index('movies');
    // Meilisearch is typo-tolerant:
    $hits = $index->search('wondre woman')->getHits();
    print_r($hits);
    

     打印信息

     自定义搜索

    $index->search(
        'phil',
        [
            'attributesToHighlight' => ['*'],
        ]
    )->getRaw(); // Return in Array format
    

     输出结果

    {
        "hits": [
            {
                "id": 6,
                "title": "Philadelphia",
                "genre": ["Drama"],
                "_formatted": {
                    "id": 6,
                    "title": "<em>Phil</em>adelphia",
                    "genre": ["Drama"]
                }
            }
        ],
        "offset": 0,
        "limit": 20,
        "processingTimeMs": 0,
        "query": "phil"
    }

     

  • 相关阅读:
    sqlserver json 查询
    分页算法
    context.Response.AddHeader("Access-Control-Allow-Origin", context.Request.Headers["Origin"]); 这个方法是有问题的,AJAX跨域解决方案 在IE11中 context.Request.Headers["Origin"] 这段是获取不到值的。
    NativeWindow 妙用,截取windows消息
    屏蔽浏览器 F12
    linux常用基础命令40条
    shell之正则
    Go语言学习思路与开发软件VScode安装
    shell基础
    docker harbor安装失败
  • 原文地址:https://www.cnblogs.com/tinywan/p/15999745.html
Copyright © 2020-2023  润新知