【发布时间】:2014-04-23 20:18:29
【问题描述】:
我正在编写一个查询来对“城市”字段进行完全匹配。字段/属性定义为:
@org.hibernate.search.annotations.Field(index = Index.YES, analyze = Analyze.NO, store = Store.NO)
private String city;
如果我有“New York”的值,我想在用户输入“new york”或大小写变体时找到匹配项。我正在为实体使用 StandardAnalyzer,所以我知道这会将所有标记都小写。我没有标记,因为我想匹配短语 (Analyze.NO)。
我尝试将搜索值小写,但没有成功。
Query query = qb.phrase().onField(.....).sentence(location.toLowerCase()).createQuery();
如果我不小写搜索词并且值为“纽约”,则返回结果。搜索“纽约”不会返回任何结果。
如果我标记化 (Analyze.YES),则返回其他城市,如“新泽西”。我知道我可以使用通配符查询 (searchTerm*),但我希望能够对短语进行不区分大小写的搜索。只是不确定这是否可能,除非您使用通配符。
谢谢
【问题讨论】: