我需要使用Lucene在调色板上实现图像索引

时间:2013-03-20 08:39:31

标签: java lucene

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

1 个答案:

答案 0 :(得分: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 call对其进行排序,例如:

Sort sort = new Sort(new SortField("green",SortField.Type.FLOAT));
TopDocs docs = searcher.search(query,maxResults,sort);