可以创建将在所有具有给定前缀名称的字段中搜索的查询吗?
我需要这个,因为我需要索引一些我正在索引的对象附带的信息,例如类别。类别可以有不同的级别。我想对不同的类别级别进行不同的提升。
我注意到索引时我可以多次添加一个字段。
我可以多次添加此catName
字段,使用不同的提升,然后搜索它,因为它是一个字段吗?
int level = 1;
for (Category cat : sortedCategories) {
float boost = CATEGORY_BOOST / level;
String catName = CATEGORY_NAME + String.valueOf(level);
TextField categoryName = new TextField(catName, cat.getName(),
Field.Store.NO);
categoryName.setBoost(boost);
doc.add(categoryName);
答案 0 :(得分:1)
您可以保持索引不变,只需创建一个使用多个子句的BooleanQuery,每个字段名称一个,以及Occurs.SHOULD。
或者,您可以为前缀创建专用索引 - 如果您的字段名称是'Pre1'和'Pre2',您可以添加新的索引字段'Pre'并索引来自'Pre1'的文档聚合和'Pre2的'。