【问题标题】:php, search in chinese and russianphp,中俄文搜索
【发布时间】:2010-12-11 08:48:09
【问题描述】:

最终,我正在创建一个使用三种语言的网站:英语、俄语和中文。我希望如果我在应用程序和数据库中使用 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 的哪些部分是单词。请给我一些中文字符串以将它们放入索引和一些具有预期结果的查询!

【问题讨论】:

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


    【解决方案1】:

    中文或日文等语言中的表意字符需要两个终端字符位置,因此遇到 UTF8 问题,您应该改用 UTF16

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

    【讨论】:

    • 哦!感谢您的评论! shpinx 不支持中文形态,是吗?
    • 当然可以!只要您在整个应用程序中与您的编码保持一致,它就可以处理所有事情。看这里:sphinxsearch.com/faq.html#encoding
    • 我尝试在我的应用程序中使用来自zh.wikipedia.org/zh-tw/Wikipedia:%E9%A6%96%E9%A1%B5 的一些文本,就像英文文本一样。文本已保存并正确显示。也许我已经意识到你的话错了?
    • 你还在用UTF8还是改成UTF16整个应用?如果您仍然使用 UTF8,那么可能会出现不一致...
    • 不,我还没有改变。但我会去做。您能否告诉我将 utf8 更改为 utf16 是否存在任何潜在的潜在问题?我一生中没有使用过 utf16。谢谢!
    【解决方案2】:

    来自 Xapian 文档:

    Xapian 使用雪球词干算法。目前,这些支持丹麦语、荷兰语、英语、芬兰语、法语、德语、匈牙利语、意大利语、挪威语、葡萄牙语、罗马尼亚语、俄语、西班牙语、瑞典语和土耳其语。也有 Lovins 的英语词干分析器、Porter 的原始英语词干分析器、Kraaij-Pohlmann 荷兰语词干分析器以及将变音符号标准化的德语词干分析器的变体。

    或者世界上的一些语言,比如中文,词干的概念是不适用的,但是对于印欧语系的很多语言来说肯定是有意义的。

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

    【讨论】:

    • 这只是文档的直接副本——中文问题是关于如何将文本拆分到数据库中——没有做一些真正愚蠢的事情,比如在字符之间插入空格。
    【解决方案3】:

    Google 用户搜索还不足以满足您的需求吗?你到底不喜欢它的什么?

    【讨论】:

    • 我不能在这种情况下使用它:(
    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-25
      • 2012-03-17
      • 2011-04-16
      • 2020-11-02
      相关资源
      最近更新 更多