如何使用 Lucene 或休眠搜索来索引和搜索自定义字段。我找不到索引自定义字段的方法。它们是动态的。
这里的“自定义字段”意味着它们可以由用户编辑,这些字段不是硬代码。
任何帮助将不胜感激!
如何使用 Lucene 或休眠搜索来索引和搜索自定义字段。我找不到索引自定义字段的方法。它们是动态的。
这里的“自定义字段”意味着它们可以由用户编辑,这些字段不是硬代码。
任何帮助将不胜感激!
自定义字段查询
只需使用投影 API:
FullTextQuery hibernateQuery = fullTextSession
.createFullTextQuery(luceneQuery)
.setProjection("myField1", "myField2");
List results = hibernateQuery.list();
使用投影,您可以读取任何已存储的字段。
如果它与您的索引实体的某些属性名称匹配,它将在转换为适当的类型后实现(如果您有 TwoWayFieldBridge);如果不是,您将获得 String 值。
如果由于某种原因您需要绕过此转换,或者只是想在解码原始 Lucene 文档时获得乐趣,您可以直接打开 IndexReader。
索引自定义字段
定义 FieldBridge 时,您可以向索引文档添加任意数量的字段,并且可以根据需要命名每个字段。方法参数名称是一个提示 - 例如用于限定字段名称 - 但您可以忽略它。