2015-06-09 48 views
1

我正在构建一个laravel项目搜索字段,我使用全文搜索。我设法让这个工作,但我不能让多个关键字一起搜索。
例如: 我有一行值为one two three four如果我搜索two three它会发现其中有two或的所有条目。但我希望它找到这两个twothree带有多个关键字的laravel全文搜索

SQL查询的条目:

DB::raw("select id, name, text, image, publishDate from game 
where match (name) AGAINST ('*$searchphrase*' IN BOOLEAN MODE) LIMIT 5") 
+0

或最终如果可以对其排序,以便包含两个关键字的短语列在顶部。 – ericm54

回答

0

请看到这一点:http://goo.gl/lZIKBkhttps://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html

“+” 代表和

“ - ”代表不是

[no运算符]暗示或

您没有任何暗示“或”的运算符。


+0

我最初尝试过:用“+”,但它似乎没有任何区别。在$ searchphrase之前和之后用“+”尝试。 – ericm54

+0

尝试搜索词组之间的“+”。像“+苹果+香蕉+橙子”。 – RY35

+0

得到它的工作:)我只使用匹配在哪里。通过相关性结束排序并且工作。结果如下:select Id,Name,Text,Image,PublishDate,match(Name)against('$ searchphrase')作为来自游戏的相关性,其中match(Name)AGAINST('+ * $ searchphrase *'IN BOOLEAN MODE)AND status = 1 order by Relevance desc LIMIT 5“虽然现在看起来我可以用一个不完整的词搜索,比如”upgr“发现升级但”等级“不会找到”升级“ – ericm54