delocker/sphinxsearch-bundle 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

delocker/sphinxsearch-bundle

最新稳定版本:1.1.0

Composer 安装命令:

composer require delocker/sphinxsearch-bundle

包简介

Sphinx search bundle for Symfony 2

README 文档

README

Sphinx search bundle for Symfony 2

Installation:

##Bring in the vendor libraries

This can be done in two different ways:

First Way : Use Composer (recommended)

// composer.json
"require": {
    "php": ">=5.3.2",
    // ...
    "delocker/sphinxsearch-bundle": "dev-master",
    // ...
}

Second Way : git command

git submodule add git://github.com/delocker/SphinxsearchBundle.git vendor/delocker/sphinxsearch-bundle

Enable the bundle in the kernel:

<?php
// app/AppKernel.php

public function registerBundles()
{
    $bundles = array(
        // ...
        new Delocker\SphinxsearchBundle\SphinxsearchBundle(),
    );
}

Configuration:

// app/config/config.yml
sphinxsearch:
    indexes:
        indexName:
            index_name: %sphinxsearch_index_indexName%
        indexNameTwo:
            index_name: %sphinxsearch_index_indexNameTwo%
    searchd:
        host:   %sphinxsearch_host%
        port:   %sphinxsearch_port%
        socket: %sphinxsearch_socket%
    indexer:
        bin:    %sphinxsearch_indexer_bin%
        conf:   %sphinxsearch_indexer_conf%

**For example**
sphinxsearch:
    indexes:
        test1:
            index_name: test1
        testrt:
            index_name: testrt
    searchd:
        host:   localhost
        port:   9312
        socket: ~
    indexer:
        bin:    /usr/local/sphinx/bin/indexer
        conf:   /usr/local/sphinx/etc/sphinx.conf

At least one index must be defined, and you may define as many as you like.

In the above sample configuration, indexName is used as a label for the index named %sphinxsearch_index_indexName% as defined in your sphinxsearch.conf).
This allows you to avoid having to hard code raw index names inside of your code.

Usage examples:

The most basic search, using the above configuration as an example, would be:

$indexesToSearch = array(
  'Items' => array(),
  'Categories' => array(),
);
$sphinxSearch = $this->get('search.sphinxsearch.search');
$searchResults = $sphinxSearch->search('search query', $indexesToSearch);

This performs a search for search query against the indexes labeled Items and Categories. The results of the search would be stored in $searchResults['Items'] and $searchResults['Categories'].

You can also perform more advanced searches, such as:

$indexesToSearch = array(
  'Items' => array(
    'result_offset' => 0,
    'result_limit' => 25,
    'field_weights' => array(
      'Name' => 2,
      'SKU' => 3,
    ),
  ),
  'Categories' => array(
    'result_offset' => 0,
    'result_limit' => 10,
  ),
);
$sphinxSearch = $this->get('search.sphinxsearch.search');
$sphinxSearch->setMatchMode(SPH_MATCH_EXTENDED2);
$sphinxSearch->setFilter('disabled', array(1), true);
$searchResults = $sphinxSearch->search('search query', $indexesToSearch);

This would again search Items and Categories for search query, but now Items will return up to the first 25 matches and weight the Name and SKU fields higher than normal, and Categories will return up to the first 10. Note that in order to define a result_offset or a result_limit, you must explicitly define both values. Also, this search will use the Extended query syntax, and exclude all results with a disabled attribute set to 1.

Copyright (c) 2012, Ryan Rogers
All rights reserved.

统计信息

  • 总下载量: 299
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 33
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-2-Clause
  • 更新时间: 2013-01-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固