【问题标题】:Hibernate + MSSQL + Fulltext Search via Contains SQLFunctionTemplateHibernate + MSSQL + 通过包含 SQLFunctionTemplate 进行全文搜索
【发布时间】:2016-06-10 14:40:20
【问题描述】:

我在客户表上设置了全文索引,以便能够通过客户信息快速搜索客户。

我必须创建一个自定义休眠方言来简化映射。 并做一些时髦的事情让冬眠开始工作 Hibernate + MSSQL + Fulltext Search via Contains

我的自定义方言有一个看起来像这样的功能

registerFunction("contains", new SQLFunctionTemplate(StandardBasicTypes.BOOLEAN, "CONTAINS(?1, ?2) AND 1"));

这样就可以进行如下查询

from Customer c where contains(c.name, :term) = true

我现在的问题是,为了能够返回部分匹配项,我需要引用该术语并添加 *

所以原始查询将是

select * from customer c where CONTAINS(c.name, '"mycust*"');

我尝试用引号和星号包装 SQLFunctionTemplate,并尝试在调用站点引用,但都不起作用。

关于如何创建执行上述原始查询的 sql 函数有什么建议吗?

【问题讨论】:

    标签: sql-server hibernate full-text-search


    【解决方案1】:

    只需使用 Hibernates 标准 API 和 sqlRestriction 然后您就可以将任何字符串传递给您想要的查询。例如。 searchValue=myCust* 等...

       Restrictions.sqlRestriction(" CONTAINS(name, ?)", searchValue, StandardBasicTypes.STRING)
    

    【讨论】:

      猜你喜欢
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多