我有一个术语列表和相关的有效负载。我如何将这些文件放入lucene文档或更确切地说是字段?
这是我的清单:
List<MyTerm> list = new List<MyTerm>(){
new MyTerm(){
Text = "apple",
Payload = BitConverter.GetBytes(2)
},
new MyTerm(){
Text = "juice",
Payload = BitConverter.GetBytes(5)
}};
我想我必须使用以下字段的构造函数。
Field(string name, TokenStream tokenStream);
但是如何从我的列表中构建所需的tokenStream?
修改
我想按条款搜索。自定义评分需要有效负载。
我的术语是图像的主色,我想在按颜色搜索时存储该颜色的百分比。如果有人搜索红色图像,那么红色图像中的红色图像的得分应该高于红色较少的图像。
修改
我应该提一下,一张图片可以有多种主色调。此外,我希望能够通过多种主色搜索图像。例如:我想要检索有很多红色和很多蓝色的图像。因此,我认为将颜色和强度放入不同的领域不是一种选择。
答案 0 :(得分:0)
好的,根据你的解释,我建议使用2个字段 - 一个用于术语(主色),一个用于有效负载(颜色强度) - 并在有效负载上对结果进行排序。这看起来像这样:
Field color = new Field("Color", colorString, Field.Store.No, Field.Index.ANALYZED));
Field intensity = new Field("Intensity", intensityString, Field.Store.No, Field.Index.NOT_ANALYZED));
color
字段用于查询,intensity
用于排序。
如果需要,请将值存储在索引中。取决于您的进一步需求。
BTW:请使用编辑功能更新原始问题及其他信息。