【发布时间】:2015-01-08 16:43:14
【问题描述】:
我正在使用 Hibernate Lucene 来索引表 MOVIE。我想按标题列进行索引和搜索,包括“the”和“a”作为搜索的一部分。例如,“最后一个站着的人”“通缉犯”。 “The”和“A”作为搜索结果的一部分是相关的。
问题是如果我在@Field 中使用了 index=Index.UN_TOKENIZED,则无法进行搜索。如果我使用 Index.TOKENIZED,则无法使用“the”和“a”进行搜索。
谁能给我一些指导?提前致谢。
下面是sn-p的代码:
@Field(index = Index.UN_TOKENIZED, store = Store.NO)
要搜索的代码:
@Field(index = Index.UN_TOKENIZED, store = Store.NO) <<< I've tried Index.TOKENIZED also.
@Column(name = "TITLE") 私有字符串标题;
要搜索的代码: FullTextEntityManager fullTextEntityManager = Search.getFullTextEntityManager(entityManager);
QueryBuilder queryBuilder = fullTextEntityManager.getSearchFactory().buildQueryBuilder().forEntity(Movie.class).get(); 查询 luceneQuery = queryBuilder.keyword().onField("title") .matching(title.toLowerCase()).createQuery();
return fullTextEntityManager.createFullTextQuery(luceneQuery, Movie.class) .getResultList();
【问题讨论】:
-
我想我找到了解决方案,通过定义分析器
标签: hibernate search hibernate-search