为fulltext sql列编写Slick查询

时间:2014-05-27 01:50:30

标签: mysql scala full-text-search slick

我有一个带有相应标签列表的“条目”列表。我需要编写一个灵活的查询,我给出了一个'标签'列表,我必须搜索一个MYSQL表来搜索那些给出'tags'作为一个类型'fulltext'列的子集的表条目。每个帖子都是表格的一行,包含一列中的帖子编号和另一列中FULLTEXT类型的标签列表。此列表中可以有多个标记。我正在搜索的标签列表中也可以有多个标签。有没有办法在Slick中进行FULLTEXT布尔搜索,以找到带有正确标签的帖子?

2 个答案:

答案 0 :(得分:6)

这是一个较老的问题,但万一有人碰到这个(像我一样) - 也许这会有所帮助。 正如克里斯托弗指出的那样,它可以直接使用SimpleExpression。

    val fulltextMatch = SimpleExpression.binary[String,String,Boolean] { (col,search,qb) =>
      qb.sqlBuilder += "match("
      qb.expr(col)
      qb.sqlBuilder += ") against ("
      qb.expr(search)
      qb.sqlBuilder += " in boolean mode)" 
    }

然后用作: ..如果是fulltextMatch(t.comment,s.bind)

答案 1 :(得分:0)

不支持开箱即用,但您应该能够使用MATCH AGAINST syntax实施SimpleExpression。有example in the Slick unit tests

另见http://slick.typesafe.com/doc/2.0.2/userdefined.html#scala-database-functions

请告诉我们您的成功。也许你可以发表一个要点。