alexschwarz89/easy-mysqli-fulltext

一个易于使用的库,用于执行排名优先的 MYSQLi 全文搜索

2.0.0 2018-09-21 11:18 UTC

README

一个易于使用的库,用于使用 MYSQLi 执行排名优先的全文搜索。

SensioLabsInsight Latest Stable Version License composer.lock GetBadges Game

安装

通过 composer 安装

{
    "require": {
        "alexschwarz89/EasyMysqliFulltext": "2.0.0"
    }
}

运行 composer install

入门指南

您可以在 examples/index.php 文件中找到一个示例文件,用于与提供的 testdata.sql 测试数据一起使用。

在现有的 MYSQLi 连接上设置搜索

use \Alexschwarz89\EasyMysqliFulltext\Search;
$search = new Search( $mysqliInstance );

在我们的测试数据中简单搜索 "example"

$query = new SearchQuery($search);
$query->setTable('testdata')
    ->setSearchFields('description')
    ->mustInclude('example');
    
$search->setSearchQuery( $query );
try {
    $search->execute();
} catch (EmptySearchTermException $e) {
    // Handle invalid search terms
}

您还可以

在不使用现有 MYSQLi 连接的情况下使用搜索

$search = Search::createWithMYSQLi('localhost', 'username', 'password', 'dbname');

您也可以通过环境变量 (.env) 传递连接变量,然后只需使用

$search = Search::createWithMYSQLi();

根目录中保存的 .env 文件

DATABASE_HOST=localhost
DATABASE_USERNAME=username
DATABASE_PASSWORD=password
DATABASE_NAME=database_name

构建更复杂的搜索查询

$query->setTable('testdata') 
    ->setSearchFields('description,title,isbn,author')
    ->mustInclude('example')
    ->canInclude('another')
    ->exclude('again')
    ->preferWithout('this')
    ->orderBy('some_field', 'ASC');

贡献当然是被允许的!:-)