php, поиск на китайском и русском - PullRequest
2 голосов
/ 29 октября 2009

Со временем я создаю сайт на трех языках: английском, русском и китайском. Я надеюсь, что если я использую UTF-8 в приложении и базе данных, не будет никаких проблем с вводом-выводом (будет ли?)

Но самая пугающая часть этого - поиск. Это должно быть достаточно круто. Он должен быть полнотекстовым, должен индексироваться и т. Д. Я надеюсь, что он поймет морфологию, будет использовать основы и т. Д.

Сначала я посмотрел Zend_Search_Lucene, но, как я понял из http://framework.zend.com/issues/browse/ZF/component/10021, у него проблемы с китайским языком. (

Теперь я думаю о Сфинксе. Он поддерживает как английский, так и русский языки. Я не уверен, насколько хорошо с китайцами, и я понятия не имею, насколько трудно будет добавить поддержку для него. http://www.sphinxsearch.com/forum/view.html?id=1554 - это серебряная подкладка, но, как неопытный пользователь Sphinx, я не думаю, что понимаю, что там сказано.


Итак,

Кто-нибудь имеет опыт такого «независимого от языка» поиска и может поделиться им со мной, пожалуйста?

и не могли бы вы дать мне что-нибудь для проверки поиска. Как носитель русского языка, обладающий некоторыми базовыми знаниями английского языка, я могу самостоятельно проверять и русский, и английский поиск, но я даже не знаю, какие части этого китайского фото являются словами. Пожалуйста, дайте мне несколько китайских строк, чтобы поместить их в индекс, и несколько запросов с ожидаемыми результатами!

Ответы [ 4 ]

5 голосов
/ 02 ноября 2009

Для идеографических символов в таких языках, как китайский или японский, требуются две конечные позиции символов, поэтому у вас будет проблемы с UTF8, и вместо него следует использовать UTF16 .

Кроме того, любая поисковая система, поддерживающая UTF16 и ваши требования (например, стемминг), должна работать нормально - то есть, если вам нравится Sphinx, сделайте это!

0 голосов
/ 27 июля 2011

Я поддерживаю проект с открытым исходным кодом, основанный на sphinx, чтобы обеспечить лучшую поддержку китайцев. Вы можете взглянуть на http://code.google.com/p/sphinx-for-chinese/. Я не знаю много о русском, но не было бы проблем, если бы русские слова были разделены пробелом. Просто оставьте мне сообщения, если у вас возникли проблемы

0 голосов
/ 02 ноября 2009

Разве Google User Search недостаточно для ваших нужд? Что именно тебе не нравится в этом?

0 голосов
/ 29 октября 2009

Из документов Xapian:

Xapian использует алгоритмы определения снежного кома. В настоящее время они поддерживают датский, голландский, английский, финский, французский, немецкий, венгерский, итальянский, норвежский, португальский, румынский, русский, испанский, шведский и турецкий языки. Существуют также реализации английского стеммера Ловинса, оригинального английского стеммера Портера, голландского стромера Краай-Полманна и разновидности немецкого стеммера, который нормализует умлауты.

или к некоторым языкам мира, например китаец, концепция стемминга неприменима, но она, безусловно, имеет смысл для многих языков индоевропейской группы.

http://xapian.org/docs/stemming.html

...