Как поместить пары терминов полезной нагрузки в документ lucene - PullRequest
3 голосов
/ 28 января 2011

У меня есть список терминов и связанных с ними полезных нагрузок. Как я могу поместить их в документ 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 из моего списка?

Редактировать

Я хочу искать по терминам. Полезные данные необходимы для произвольной оценки.

Мои термины являются доминирующими цветами изображения, и я хочу сохранить процент этого цвета для оценки при поиске по цветам. Если кто-то ищет красные изображения, изображения с большим количеством красного цвета должны быть оценены выше, чем изображения с меньшим количеством красного цвета.

Редактировать

Следует отметить, что одно изображение может иметь несколько доминантных цветов. Кроме того, я хочу иметь возможность искать изображения по нескольким доминирующим цветам. Например: я хочу получить изображения, которые имеют много красного и много синего. Таким образом, я полагаю, что размещение цветов и интенсивностей в разных полях не вариант.

1 Ответ

0 голосов
/ 28 января 2011

ОК, исходя из вашего объяснения, я бы предложил использовать 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 для сортировки.

Если вы хотите, сохраните значения в индексе.Зависит от ваших дальнейших потребностей.

Кстати: пожалуйста, используйте функцию редактирования, чтобы обновить исходный вопрос с вашей дополнительной информацией.

...