Solr lucene schema.xml многозначные записи, пожалуйста, помогите - PullRequest
0 голосов
/ 02 июня 2011

По сути, я пытаюсь связать тип пользователя с ценой для продукта.

Таким образом, продукт представляет собой документ в индексе, и каждый документ имеет несколько цен, по одной для каждого типа пользователя.

И я, по сути, пытаюсь проверить цену для этого типа пользователя

например, где тип пользователя = 2 и цена> 10

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

Мне нужен способ сказать, что user type = x, и что пользователь печатает цену> 10

Я использую Solr версии 1.4.1 и не могу найти способчтобы создать поле, которое работает таким образом.

Поскольку я пишу файл schema.xml для этого документа, поэтому у меня нет возможности создавать отдельные поля для каждого типа пользователя, мне нужно универсальное решение для многих пользователей.типы I, которые требуются.

спасибо заранее, Google и Bing ничего не дали мне, и я бьюсь головой о стену

Ответы [ 3 ]

2 голосов
/ 03 июня 2011

Хммм ... Одна вещь, которую вы можете попробовать, это использовать динамические поля в solr для решения этой проблемы.

Когда вы добавляете поля, вы просто называете их как price_usertypex_i (см. Также некоторые примеры в schema.xml).Когда вы добавляете типы пользователей, вы создаете больше полей, но вам не нужно изменять схему, потому что она динамическая.

Одно предостережение: я не думаю, что вы сможете использовать dataimporthandler в этомСценарий, так как я не думаю, что он работает с динамическими полями (вам нужно будет выполнить свой собственный импорт).

0 голосов
/ 03 июня 2011

Я новичок в SOLR, но я бы создал отдельный документ для каждого комбинированного продукта / userType. Да, у вас будет несколько документов для одного и того же продукта, но, насколько я вижу, сервер справляется с этим довольно хорошо.

...

Что-то не так с этим подходом?

0 голосов
/ 03 июня 2011

Не уверен, что у вас правильная модель данных, но с учетом описываемых вами ограничений вы можете проиндексировать описание продукта и добавить к нему разделитель и U1 123 U12 154

где для пользователя 1 цена составляет 123 доллара, а для пользователя 12 - 154 доллара? Это позволит вам осуществлять поиск по пользователю. Ценовой интервал должен быть постобработан.

Более стандартным способом было бы добавить столбец "цена" для пользователя

...