楼主:
DarkKiller (System hacked)
2017-08-15 23:05:02居然是十年前的文章... (想说居然是 Xapian...)
如果你的资料量还会再增加的话,现在主流的方式是用 Elasticsearch (ES) 架
设,你可以翻翻这本中文书:(虽然是讲怎么分析的,但 ES 本身就有全文搜寻的
能力)
https://www.kingstone.com.tw/book/book_page.asp?kmcode=2013120359772
如果没办法另外架设服务的话,另外架一台 MySQL server 跑 replication 同步
,这台 server 独立给 search 用也是一个方法... (国内某大站台以前是这样的
架构)
※ 引述《liisi (小心一点)》之铭言:
: 大家午安
: 目前也是遇到 like '%关键字%' 效能会变差的问题
: 网站的商品数 超过一百万笔
: 网站的使用族群 是所有消费者
: 透过关键字 来模糊搜寻商品名称 甚至是二个以上的关键字来搜寻
: ( 商品名称 like '%关键字A%' or 商品名称 like '%关键字B%' )
: 测试过时间 需要 2 ~ 2.4秒左右
: 爬文了 也google过 了解如果把%放在前头 会让索引无效
: 我也自己试了一下 '关键字%' 时间0.0005秒 (也差太多了....)
: 但是关键字搜寻 不太可能用 like '关键字%'找资料
: 用其他的语法 locate试了一下 也是很慢
: 想请问大家 在语法的部分 目前还没办法解决吗?
: ※ 引述《DarkKiller (System hacked)》之铭言:
: : MySQL 的 %...% 一定是 table scan,如果资料是拉丁语系资料,用 MySQL
: : 提供的 fulltext index 做。
: : 如果是 CJK 用专门的 fulltext search engine 做,像 Lucene (或 CLucene),
: : 另外还需要了解一些目前切词常用到的基础原理。
: : ==
: : 另外我自己帮 pixnet 架的是 Xapian,目前已经在内部测试了...