it-blaster / sphinx-search-propel-bundle
使用 Propel ORM 在 Symfony2 中对网站进行 Sphinx 搜索。
Requires
- propel/propel1: ~1.6
- symfony/symfony: >=2.2
This package is not auto-updated.
Last update: 2024-09-14 18:09:28 UTC
README
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 的命令
- 重建索引:indexer --config app/config/sphinx.conf --All --rotate
- 启动搜索:searchd -c app/config/sphinx.conf
app/config/sphinx.conf
- sphinx 配置文件的路径
首先执行第一个命令。如果没有错误(即控制台没有错误),则执行第二个命令。