php,搜索中文和俄文

时间:2009-10-29 18:27:49

标签: php utf-8 internationalization full-text-search sphinx

最终,我正在创建一个三种语言的网站:英语,俄语和中文。我希望如果我在应用程序和数据库中使用UTF-8,输入输出就不会出现任何问题(会有吗?)

但最令人恐惧的部分是搜索。它应该足够酷。它应该是全文,它应该索引等。我希望它能理解形态学,使用词干等。

首先,我看过Zend_Search_Lucene,但是我从http://framework.zend.com/issues/browse/ZF/component/10021意识到它有中文问题。 :(

现在我在考虑狮身人面像。它支持英语和俄语词干。我不确定中文有多好,我不知道加上对它的支持有多难。 http://www.sphinxsearch.com/forum/view.html?id=1554是一线希望但是,由于没有经验丰富的Sphinx用户,我认为我不明白那里的内容。


所以,

有没有人有这种'语言无关'搜索的经验,可以和我分享吗?

你可以给我一些东西来测试搜索。作为一名具有一定英语基础知识的俄语母语人士,我可以自己测试俄语和英语搜索,但我甚至不知道这些中文 pics 的哪些部分是单词。请给我一些中文字符串,将它们放入索引和一些预期结果的查询中!

4 个答案:

答案 0 :(得分:5)

中文或日文等语言的表意字符需要两个终端字符位置,因此 会出现UTF8问题而你应该使用UTF16

除此之外,任何支持UTF16的搜索引擎和你的要求(例如词干)都应该可以正常工作 - 也就是说,如果你喜欢Sphinx,那就去吧!

答案 1 :(得分:0)

来自Xapian docs:

Xapian使用Snowball Stemming Algorithms。目前,这些支持丹麦语,荷兰语,英语,芬兰语,法语,德语,匈牙利语,意大利语,挪威语,葡萄牙语,罗马尼亚语,俄语,西班牙语,瑞典语和土耳其语。还有Lovins的英语词干分子,Porter的原始英语词干分子,Kraaij-Pohlmann荷兰词干分子,以及德国词干分析器的变体,它使变音符号正常化。

或世界上的一些语言,例如中文,词干的概念不适用,但它对印欧语群的许多语言肯定有意义。

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

答案 2 :(得分:0)

Google用户搜索不足以满足您的需求吗?你究竟对它不喜欢什么?

答案 3 :(得分:0)

我正在维护一个基于sphinx的开源项目,以提供更好的中文支持。你可以看看http://code.google.com/p/sphinx-for-chinese/。我对俄语知之甚少,但如果俄语单词是空格分开的话就不会有问题。如果您有任何问题,请留言给我留言