web-dev-qa-db-ja.com

PHPおよびMySQLでSphinxを使用するためのガイド

PHPとMySQLでSphinxを使用するための完全なガイドを探しています。サイトで提供されているものよりも少し簡単で使いやすいものを求めています。

それがどのように機能するかについて、いくつかの概念を探しています。

PHP、HTML、その他のデータとMySQLデータベースを備えたサーバーがあります。検索と結果が返されるようにSphinxを設定するにはどうすればよいですか?

検索条件をPHPスクリプトに渡して、Sphinxを処理してデータを返すようにできるようにしたいと思います。

追伸Sphinxの他の代替案についても提案をお待ちしています。

26
Julio

この投稿を見つけましたが、見たい回答が見つかりませんでした。だからここに私のクイックスタートガイドがあります:

1。 Sphinxをインストールする

Homebrewを搭載したMacの場合:

brew install sphinx

Yumを使用するAmazon Linux(CentOS)の場合:

yum install sphinx

2。 Sphinx設定を作成します

Sphinxには設定テンプレートが付属しています。 configsディレクトリでsphinx.conf.distを探します。

HomebrewがインストールされているMacの場合:

/usr/local/Cellar/sphinx/<sphinx version>/etc

YumでインストールされたAmazon Linuxの場合:

/etc/sphinx

かなり簡単ですが、初心者には設定が多すぎる可能性があります。そのような場合は、次の単純な構成を使用できます。

source TestSource {
    type = mysql
    sql_Host = <Host>
    sql_user = <user>
    sql_pass = <password>
    sql_db = <db>

    sql_query_range = select min(id), max(id) from TestTable
    sql_range_step = 2048

    sql_query = select id, some_info from TestTable\
        where id >= $start and id <= $end
}

index TestIndex {
    source = TestSource
    path = /var/lib/sphinx/test-index
    min_Word_len = 3
    min_infix_len = 3
}

searchd {
    log = /var/log/sphinx/searchd.log
    query_log = /var/log/sphinx/query.log
    pid_file = /var/run/searchd.pid

    max_matches = 200

    listen = localhost:9312
}

Max_matches設定をこの構成に追加しました。すべてを機能させた後の最初の質問は、「なぜ常に20件の検索結果しか得られないのですか?」でした。 max_matchesを使用すると、検索結果数の制限を設定できます。

3。インデクサーを使用してインデックスを作成する

indexer --all

4。 Sphinxデーモンを実行する

Sudo searchd -c /path/to/config/sphinx.conf

5。インストールPHP Sphinx拡張機能

Homebrewを搭載したMacの場合:

brew install homebrew/php/php56-sphinx

Yumを使用するAmazon Linuxの場合:

yum install libsphinxclient
pecl install sphinx

6。 PHPからインデックスをクエリします

$index = new SphinxClient();
$index->setServer("127.0.0.1", 9312);

$result = $index->query('some search term', 'TestIndex');

print_r($result);

エラーが発生した場合は、次の方法で詳細情報を取得できます。

$index->getLastError();

7。最新のインデックスを維持する

最新のインデックスを維持するには、2つのインデックスを使用できます。

  1. 頻繁に更新されないメインインデックス(週、月などに1回)
  2. そして、頻繁に更新されるデルタインデックス(1時間ごと、5分など)

デルタインデックスが再インデックスされるたびに、メインインデックスとマージされます

このリンク http://www.sphinxconsultant.com/sphinx-search-delta-indexing/ にアクセスして、このアプローチの詳細をご覧ください。

役立つリンク:

11

私は良いガイドについてあまり確信がありませんが、これが私のステップです。

a)ダウンロードしてインストールするのは非常に簡単です

b)最初のインデックスを作成します-与えられた設定が非常に良い場所にソースが必要です。プライマリソースを使用してすべてのメインエリアを設定し、他のソースがそこから派生することを覚えておいてください。各ソースは主キーで始まる必要があり、key_id AS idを実行するのが最適です

c)検索を使用してインデックスをテストします

d)スフィンクスの検索デーモンを開始します-これがphpの接続先であり、結果を取得する方法です。

e)すべてのインデックスを検索する関数を作成して、検索するインデックスを渡します。検索に一致した配列のIDが返されます。

f)デルタを作成して更新します。

仕事が終わりました-スフィンクスフォーラムはとても素敵で、何か助けが必要な場合はあなたに提供してくれるはずです。リチャード

3
Richard Housham

Php.netでSearch Engine Extensionsを見てください: http://php.net/manual/en/refs.search。 php

0
Dong3000

http://play.manticoresearch.com/ は、Sphinx/Manticoreを使用するときに人々が遭遇するさまざまなタスクと、それらをどのように解決できるかについて説明するインタラクティブなコースのセットです。

0