2

ラテン語とロシア語の翻訳による通常の検索(!)

$ search sumka   
using config file '/etc/sphinx/sphinx.conf'...
index 'test1': query 'sumka ': returned 636 matches of 636 total in 0.000 sec

displaying matches:
1. document=154143, weight=1660, name=Сумка Sony LCS-MS10 Gray Alpha Текстильная сумка для фотокамеры Alpha Серый цвет, casual style (сумка почтальона) [LCSMS10H.AE], description_short=Сумка Sony LCS-MS10 Gray Alpha Текстильная сумка для фотокамеры Alpha Серый цвет, casual style (сумка почтальона) [LCSMS10H.AE]
                                     ...

$ search сумка

using config file '/etc/sphinx/sphinx.conf'...
index 'test1': query 'сумка ': returned 0 matches of 0 total in 0.000 sec

words:
1. 'сумка': 0 documents, 0 hits

ここでは文字セットの問題のように聞こえますが、mysql とクエリに utf8 があります

mysql> show variables like "character%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

mysql> show variables like "collation%";
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_unicode_ci |
+----------------------+-----------------+ 

$ file words
words: UTF-8 Unicode text
$ cat words | search --stdin 

using config file '/etc/sphinx/sphinx.conf'...
index 'test1': query 'сумка
': returned 0 matches of 0 total in 0.000 sec

words:
1. 'сумка': 0 documents, 0 hits

これは、php クライアントと sphinx mysql のようなクライアントにも当てはまります。

完全なスフィンクス構成はこちらですが、重要な部分の引用:

source src1
{
...
sql_query_pre       = SET NAMES utf8
sql_query_pre       = SET CHARACTER SET utf8
...
}
index test1
{
...
charset_type    = utf-8
...
}

同様の問題が 1 つだけ見つかりましたが、db に latin1 charset がありました。

プログラムのバージョンは次のとおりです。

mysql  Ver 14.14 Distrib 5.5.20, for Linux (x86_64) using readline 5.1
Sphinx 2.0.6-id64-release (r3473)
centos 5.8

アップデート

http://sphinxsearch.com/wiki/doku.php?id=charset_tables#cyrillicのテーブルを使用して構成に charset_table を追加しますが、それでもうまくいきません。

また、Sphinx 2.0.5-release (r3308) をローカルの gentoo にインストールしました。これは、すぐに使用できるキリル文字クエリで動作します。

4

3 に答える 3

0

mysql インターフェースを試してみませんか? ( mysql -P 9306 -h 127.0.0.1 を実行してから SELECT * FROM test1 WHERE MATCH('сумка'); を実行します)

于 2012-11-01T16:35:26.953 に答える
0

この問題は、mysql エンコーディングが原因である可能性があります。この行のコメントを外してみてください:

#sql_query_pre      = SET NAMES utf8

mysql のデフォルトのエンコーディングは utf8 とは異なる場合があります。

于 2016-09-30T12:34:44.860 に答える
0

そして、それは今動作します。

私はそれが何であるかを明確に理解していませんでしたが、デフォルトの構成とキリル行のexample.sqlで動作するため、DBをダンプして埋め戻し、動作させました. いくつかのエンコードの問題が修正されたと思います。これは、移行後に mysql のいくつかのインスタンスがスローされた後に発生する可能性があります。

私の純粋な英語でごめんなさい。:)

于 2012-11-06T07:40:33.343 に答える