计算结果宽度全文搜索mysql中的行数

时间:2012-10-25 23:18:11

标签: php mysql

我想问一下是否有人可以帮我解决这个问题

SELECT count(MATCH(product_text) AGAINST('lorem*' in boolean mode)) AS score FROM table_products WHERE MATCH (text) AGAINST ('lorem*' in boolean mode) limit 0,50000

列文本上有全文索引。上午。查询返回行的总和作为分数。 我不会计算全文搜索结果。如果结果数(行) 高于50000,比计数和50000将被退回,否则精确计数 返回结果。

问题是如果用户试图找到例如单词“lorem”并且该单词出现在表f.e中,则表宽度为150万行并不快。超过50万x。

我也尝试了

SELECT id,name,product_text,price, MATCH(product_text) AGAINST('lorem*' in boolean mode) AS score FROM table_products WHERE MATCH(product_text) AGAINST('lorem*' in boolean mode) and show_product='1' limit 0,50000

... width php mysql_num_rows

另一个问题是,在以下查询mysql中仅使用全文索引 并按另一列或按分数排序

SELECT id,name,product_text,price, MATCH(product_text) AGAINST('lorem*' in boolean mode) AS score FROM table_products WHERE MATCH(product_text) AGAINST('lorem*' in boolean mode) and show_product='1' order by score desc limit 0,50000

RESP。 (..按名称排序,按价格排序)

还有另一种更好更快的方法吗?

非常感谢您的帮助。

0 个答案:

没有答案