1

给定一个仅包含图像的目录,我需要使用 Lucene 索引(使用倒排索引)对文件进行索引。假设我们提供了一个工具来提取颜色百分比(不是特定的 RGB 百分比),我应该如何使用 Lucene 库,以便当我查询具有绿色的图像时,我得到的结果集为具有绿色百分比的图像按降序排列?? 我应该如何修改字段文件?如果我创建一个新的 ColorField 文件,它的数据类型可以是什么以促进最小的更改?我还需要修改分析器文件吗?

4

1 回答 1

0

我会将您要搜索的百分比索引为单独的字段。使用IntFieldDoubleFieldFloatFieldLongField或类似的,可能是最有意义的。

例如:

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 回答