tear/sphinxsearch-bundle

该软件包已被废弃且不再维护。未建议替代软件包。

Sphinx 搜索包 for Symfony 2

安装: 140

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 34

类型:symfony-bundle

1.1.0 2012-09-08 05:32 UTC

This package is auto-updated.

Last update: 2020-08-04 13:04:40 UTC


README

Sphinx 搜索包 for Symfony 2

安装

##引入供应商库

这可以通过两种不同的方式完成

第一种方法 : 使用 Composer (推荐)

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

第二种方法 : git 命令

git submodule add git://github.com/leonnleite/Tear-SphinxsearchBundle.git vendor/tear/sphinxsearch-bundle

配置

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

至少必须定义一个索引,您也可以定义任意多个。

在上面的示例配置中,indexName 用作索引 %sphinxsearch_index_indexName% 的标签,该索引在您的 sphinxsearch.conf 中定义。
这允许您在代码中避免硬编码原始索引名称。

用法示例

最基本的搜索,例如使用上述配置,将是

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

这将针对标签为 ItemsCategories 的索引进行搜索 search query,搜索结果将存储在 $searchResults['Items']$searchResults['Categories'] 中。

您还可以进行更复杂的搜索,例如

$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);

这将在 ItemsCategories 中再次搜索 search query,但现在 Items 将返回最多前 25 个匹配项,并将 NameSKU 字段的权重高于正常水平,而 Categories 将返回最多前 10 个。请注意,为了定义 result_offsetresult_limit,您必须明确定义这两个值。此外,此搜索将使用 扩展查询语法,并排除所有将 disabled 属性设置为 1 的结果。

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