【问题标题】:mysql fulltext union wordsmysql全文联合词
【发布时间】:2012-01-22 22:28:55
【问题描述】:

我有一个 mysql 全文问题。参考:http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('(+apple +juice)' IN BOOLEAN MODE))

这会返回 14 件商品

SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('(+apple +pie)' IN BOOLEAN MODE))

这会返回 36 个项目

SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('(+apple +pie)|(+apple +juice)' IN BOOLEAN MODE))

这返回 1910 个项目,显然,我的查询有问题。如何搜索包含(+apple +pie)(+apple +juice)的单词?我认为应该是返回14+36=50items

在我的目的中,我需要一个联合搜索

(+apple +pie) (+apple +juice) (+apple +macintosh) (+apple +turnover) (+apple +strudel) (+pear +pie) (+pear +juice) (+pear +macintosh) (+pear +turnover) (+pear +strudel)

应该返回近 520 件商品。谢谢。

【问题讨论】:

  • 使用联合运算符:query1 union query2 - w3schools.com/sql/sql_union.asp
  • @Adrian,这将是一个很长的查询语句。我终于有10个搜索关键词了。

标签: mysql full-text-search


【解决方案1】:

这应该是你想要的:

SELECT 
  * 
FROM 
  table 
WHERE 
  (MATCH (aindex,bindex) AGAINST ('+apple +(pie juice)' IN BOOLEAN MODE))

ETA:错过了我第一次阅读的梨子句。为了得到你列出的所有我认为这应该工作:

SELECT 
  * 
FROM 
  table 
WHERE 
  (MATCH (aindex,bindex) AGAINST ('+((apple +(pie juice macintosh turnover strudel)) (pear +(pie juice macintosh turnover strudel)))' IN BOOLEAN MODE));

这应该翻译成“必须包含苹果和馅饼、果汁、麦金塔、营业额或馅饼之一或梨和馅饼、果汁、麦金托什、营业额或馅饼之一。

如果这不起作用,我会这样做:

SELECT 
  * 
FROM 
  table 
WHERE 
  (MATCH (aindex,bindex) AGAINST ('+apple +(pie juice macintosh turnover strudel)' IN BOOLEAN MODE))
UNION
SELECT 
  * 
FROM 
  table 
WHERE 
  (MATCH (aindex,bindex) AGAINST ('+pear +(pie juice macintosh turnover strudel)' IN BOOLEAN MODE));

【讨论】:

  • 那么如何处理最后我的目的搜索呢? (SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('+apple (+pie +juice +macintosh +turnover +strudel)' IN BOOLEAN MODE))) UNION (SELECT * FROM table WHERE (MATCH (aindex,bindex) AGAINST ('+pear (+pie +juice +macintosh +turnover +strudel)' IN BOOLEAN MODE))) ?
  • 为此添加了两种可能的解决方案。希望第一个作品。
  • 很好,谢谢,也可以是(+(apple pear) +(pie juice macintosh turnover strudel)) :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-09
  • 2021-09-24
  • 2011-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多