首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >斯芬克斯- Ruby on Rails的错误搜索结果

斯芬克斯- Ruby on Rails的错误搜索结果
EN

Stack Overflow用户
提问于 2016-12-01 10:04:25
回答 1查看 73关注 0票数 1

我们寻求你的帮助,因为我们真的被困住了。

我们在一个使用狮身人面像搜索的产品上做出了很大的提升。

搜索以前一直运行良好,但现在升级结果是绝对错误的,经过许多天的降级等,我们无法解决它。

带或不带重音的搜索应该返回上百个结果,但现在只返回很少的结果。搜索结果是完全错误的,重音字符似乎被替换为零,好像charset_table被忽略了一样。

为了获得"hopital“或”h pital“的良好效果,我们必须键入"hpital”.

当然,我们使用charset_table,重新索引所有表,使用UTF8等等。

在我们进行工作搜索之前:

  • 1.9.3
  • 狮身人面像2.0.10
  • 谜语1.5.12
  • 思维狮身人面像3.1.4
  • Mysql 5.5.52

我们的坏配置是:

  • 2.0.0
  • 狮身人面像2.2.11
  • 谜语2.0.0
  • 思维狮身人面像3.1.4
  • Mysql 5.5.52

谢谢你的反馈

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 13:04:07

不确定是否有足够的知识来建议如何修复它,但可能能够解释它。

狮身人面像有一个重写的令牌程序,它对无效的UTF8序列有不同的响应。

以前无效的序列只会变成‘分隔器’,所以搜索是完全可能的,因为"h pital“将被简单地索引为”h pital",查询也会这样做,因此‘匹配’。

但是新的标记程序'drops‘无效序列,所以如果“h pital”以某种方式被接收到'mangled’,它就会被索引为hpital -无效的字节就会消失。

(查询解析器没有改变,因此现在对文本解析的行为是不一致的)

因此,如果UTF数据的索引不完全正确,那么行为就会改变。只是之前没有被注意到,因为它一直都是错误的:)

所以也许确保狮身人面像收到的数据是正确的数据库,可以修复它吗?就像一个固定的名字。如果在狮身人面像收到的数据是有效的,那么它应该按照charset_table索引ok。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40907636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档