2012-04-01 3 views
0

Смотрите также: determine which value produced a hit in SOLR multivalued field typeопределить, какое значение получают попадание в ГУМЗ многозначное поле type2

Этот вопрос был задан и был дан ответ на январь 2010

С новыми версиями Solr, последняя стабильная версия от 3,5 .0, Есть ли какая-либо функция Solr для идентификации многозначного поля, вызвавшего удар.

For Ex: 
<field name="id">ID</field> 
<field name="field1">Term1</field> 
<field name="field1">value2</field> 
<field name="field1">Term2</field> 

Если я выполнить поиск,

qf=field1&q=Term 

Есть ли способ я могу знать, что значения TERM1 и term2 вызвало попадание из результата возвращается из Solr?

+0

Ну, принесите значение самого поля? или в зависимости от того, что вы имеете в виду, может помочь извлечение граней (см. Solr faceting). – aitchnyu

+0

Что вы используете? Возможно, изменение схемы было бы более актуальным, чем решение этого конкретного вопроса. – jpountz

ответ

0

Что-то вы можете попробовать Играть Analyzer#getPositionIncrementGap и IndexReader#getTermVectors чтобы вычислить, где field1 штук содержит Term.

Например, если у вас меньше, чем 10 field1 экземпляров, и если каждый экземпляр имеет меньше чем 100 терминов, а затем с помощью positionIncrementGap из 10 * 100 = 1000 поможет вам вычислить, какое поле содержал Term с помощью position % 1000.

Обратите внимание, что для этого требуется активировать term vectors (with positions).

Остерегайтесь, что это взломать, хотя я мог бы использовать его для тестирования, я бы, вероятно, не сделал этого в каком-либо серьезном программном обеспечении.

Смежные вопросы