使用Extbase进行MySQL全文搜索

时间:2019-07-17 13:00:35

标签: mysql extbase typo3-8.x

如何使用TYPO3 Extbase实现MySQL全文搜索?

我想对这样的索引进行全文搜索:

SELECT * FROM table
WHERE MATCH (name, title)
AGAINST ('foo bar' IN BOOLEAN MODE);

在extbase的query-> matching方法中找不到合适的比较选项。我是否必须使用$ query-> statement构建本机sql语句?

如果这样做,则不会在语句中使用我的boundVariables。

我这样尝试过:

$sql = "SELECT * FROM `table` WHERE MATCH (name,title) AGAINST ?";
$searchTerm = "('" . $paramFromForm ."' IN BOOLEAN MODE)";
$query->statement($sql, array($searchTerm);

这样我在TYPO3中收到以下错误消息

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '?' at line 1

使用\ TYPO3 \ CMS \ Extbase \ Utility \ DebuggerUtility :: var_dump($ query,'My Title')进行调试;向我显示$ sql中的一条语句和一个包含我的Searchterm的boundVariables-Array:

0 => '('foo bar' IN BOOLEAN MODE)'

但是很明显,我的SQL语句中的问号没有被我的SearchTerm取代。

我错在哪儿或用另一种方法用extbase做MySQL全文搜索?

0 个答案:

没有答案