it-blaster/sphinx-search-propel-bundle

使用 Propel ORM 在 Symfony2 中对网站进行 Sphinx 搜索。

v1.0.0 2015-04-21 10:49 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:09:28 UTC


README

Scrutinizer Code Quality Build Status

Symfony2. 使用 Propel ORM 在网站中进行 Sphinx 搜索。

安装

composer.json 中添加 ItBlasterSphinxSearchPropelBundle

{
    "require": {
        "it-blaster/sphinx-search-propel-bundle": "dev-master"
	},
}

现在运行 composer 命令下载包

$ php composer.phar update it-blaster/sphinx-search-propel-bundle

composer 会将包安装到项目文件夹的 vendor/it-blaster/sphinx-search-propel-bundle 中。

接下来在 AppKernel.php 核心中连接包

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new ItBlaster\SphinxSearchPropelBundle\ItBlasterSphinxSearchPropelBundle(),
    );
}

app/config/config.yml 文件中添加包的配置

it_blaster_sphinx_search_propel:
     searchd:
         # Хост для подключения к демону Sphinxc
         host: localhost
         # Порт для подключения к демону Sphinx
         port: %sphinx_port%
         # Файл сокета, если нужно подключаться к демону через сокет
         #socket: /path/to/socket.file
     indexes:
         # Список индексов Sphinx (ключ) и имен Entity (значение)
         # которые будут использоваться при поиске
        newsIndex: "App\MyBundle\Model\\NewsQuery"

indexes 部分将列出所有将进行搜索的实体。

将包文件夹中的 app/config 目录下的 sphinx.conf.dist 文件复制到项目文件夹的 app/config/sphinx.conf 中,并编写索引的配置。在 sphinx.conf.dist 文件中已经包含了新闻实体的索引配置。

用法

app/data/* 目录添加到 .gitignore 文件中,其中将存储 sphinx 的索引。sphinx 无法自己创建所需文件夹,因此需要手动创建: mkdir app/data && mkdir app/data/sphinx && mkdir app/data/sphinx/indexes && mkdir app/logs/sphinx && chmod -R 777 app/data app/logs/

用于操作 sphinx 的命令

  1. 重建索引:indexer --config app/config/sphinx.conf --All --rotate
  2. 启动搜索:searchd -c app/config/sphinx.conf

app/config/sphinx.conf - sphinx 配置文件的路径

首先执行第一个命令。如果没有错误(即控制台没有错误),则执行第二个命令。