В Lucene используется FieldInvertState, чтобы определить, сколько раз поле было добавлено в документ - PullRequest
1 голос
/ 08 марта 2012

Из класса FieldInvertState, переданного в computeNorm () в классе Similarity, есть какой-либо способ узнать, сколько раз конкретное поле было добавлено в документ, чтобы помочь мне в моих вычислениях нормализации.

Т.е. можно ли различить

doc.add(new Field(fielda,"val1");
doc.add(new Field(fielda,"val2");

и

doc.add(new Field(fielda,"val1 val2"); //added once but analyzer breaks into two terms

в идеале возвращает значение 2 в одном случае и 1 во втором

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Также см. Документацию в разделе «Сходство».

Поскольку вы сами знаете, сколько «вещей» вы добавляете в это поле, вы можете поместить это число в поле DocValues ​​и вывести его в поле «Сходство»: вам не нужна помощь индексаторов.

0 голосов
/ 09 марта 2012

Нет, но вы можете использовать пользовательский атрибут, чтобы указать, что "val2" был добавлен по-другому.

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