определить, какое значение вызвало попадание в многозначное поле SOLR type2 - PullRequest
0 голосов
/ 01 апреля 2012

См. Также: определить, какое значение вызвало попадание в многозначном поле типа SOLR

Этот вопрос был задан и был дан ответ в январе 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?

1 Ответ

0 голосов
/ 02 апреля 2012

Можно попробовать поиграть с Analyzer # getPositionIncrementGap и IndexReader # getTermVectors , чтобы вычислить, какой field1 экземпляр содержит Term.

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...