我需要在一个非常庞大的数据库全文索引中找到一些文本,我不知道在我的查询中的术语变体中使用哪个更好。
我看过一些使用
的例子public class BoxUser implements Serializable {
private static final long serialVersionUID = 1L;
@EmbeddedId
private BoxUserPK id;
@Enumerated(EnumType.STRING)
@Column(nullable=false)
private UserRole role;
//bi-directional many-to-one association to Box
@ManyToOne
@JoinColumn(name="boxid", nullable=false, insertable=false, updatable=false)
@Cascade({ org.hibernate.annotations.CascadeType.ALL})
private Box box;
//bi-directional many-to-one association to User
@ManyToOne
@JoinColumn(name="userid", nullable=false, insertable=false, updatable=false)
@Cascade({ org.hibernate.annotations.CascadeType.ALL})
private User user;
使用
的一些例子SELECT
Foo.Bar
FROM
Foo
WHERE
CONTAINS(Foo.Bar, "A") OR
CONTAINS(Foo.Bar, "B")
有什么好用的?为什么?
答案 0 :(得分:2)
合并对CONTAINS(您的第二个示例)的调用将需要更少的工作。每个CONTAINS谓词都有一些开销,比如全文查询的编译,可以是有限的。这是对TechNet提出的建议之一。
话虽如此,根据索引大小,查询,查询中包含单词的文档数等因素,差异可以忽略不计......