[英]How to search fields with wildcard and spaces in Hibernate Search
[英]How to search across all fields when using Hibernate Search
我刚刚将搜索实现更改为Hibernate Search 4.5.1.FINAL。 我正在尝试创建一个在所有字段中搜索单词的查询。 但是,我无法找到有关如何实现这一目标的任何信息。 在ElasticSearch中,您有一个_all
字段。 http://www.elasticsearch.org/guide/zh-CN/elasticsearch/reference/current/mapping-all-field.html
我提供了一个文本字段,用户可以在其中输入任何内容,然后得到结果。 但是我不知道他/她想搜索哪些字段。
如何在Hibernate Search中做到这一点? 除了常规的@Field
注释外,我不想添加@Field(name="_all")
注释。 你怎么做到这一点?
似乎Hibernate Search本身并不支持此功能(因为Lucene的人也不建议这样做)。
似乎只有一种选择已经存在,而您拒绝使用; 用名称注释所有字段:
@Fields({
@Field(index = Index.TOKENIZED),
@Field(name = "ALL", index = Index.TOKENIZED)
})
//your variable declaration
如https://stackoverflow.com/a/25324486/115835中所建议,一种选择是确保属性也被索引到共享字段中。
替代方法是以所有字段为目标的方式来构建查询。 用户仍然只能看到一个输入字段,但是您可以在幕后针对您喜欢的字段构建布尔查询(需要注意分析器和其他影响搜索字段的设置)。 您甚至可以使用元数据API,该API允许您以编程方式获取已配置字段的列表。 我认为我更喜欢这种方法而不是其他领域。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.