给定一个仅包含图像的目录,我需要使用 Lucene 索引(使用倒排索引)对文件进行索引。假设我们提供了一个工具来提取颜色百分比(不是特定的 RGB 百分比),我应该如何使用 Lucene 库,以便当我查询具有绿色的图像时,我得到的结果集为具有绿色百分比的图像按降序排列?? 我应该如何修改字段文件?如果我创建一个新的 ColorField 文件,它的数据类型可以是什么以促进最小的更改?我还需要修改分析器文件吗?
问问题
283 次
1 回答
0
我会将您要搜索的百分比索引为单独的字段。使用IntField、DoubleField、FloatField、LongField或类似的,可能是最有意义的。
例如:
Document doc = new Document();
doc.add(new StoredField("path",path));
doc.add(new FloatField("green",percentageGreen,Field.Store.NO));
doc.add(new FloatField("red",percentageRed,Field.Store.NO));
//etc.
诸如使用哪个数字字段、是否存储百分比等详细信息将取决于您的要求。
然后,您可以使用NumericRangeQuery搜索这些百分比,或者使用适当的IndexSearcher.search 调用基于它们进行排序,例如:
Sort sort = new Sort(new SortField("green",SortField.Type.FLOAT));
TopDocs docs = searcher.search(query,maxResults,sort);
于 2013-03-20T15:53:28.777 回答