Оценка Lucene: TermQuery без TermVectors

Приводит ли TermQuery:ExtractTerms к большему количеству при включении терминов-векторов / позиций / смещений? (при условии, что совпадение произошло более 1 раза). И наоборот, если информация о инвертированном файле отключена, всегда ли ExtractTerms возвращает 1 и только 1 член?

РЕДАКТИРОВАТЬ: Как и где включение терминов векторов в схеме влияет на скоринг?

1 ответ

TermQuery.ExtractTerms извлекает термины в запросе, а не результат. Таким образом, поиск "foo:bar" всегда будет возвращать ровно один термин, независимо от того, что находится в индексе.

Для меня это звучит так, как будто вы хотите знать о выделении, а не Query.ExtractTerms,

РЕДАКТИРОВАТЬ: Исходя из вашего комментария, звучит так, как будто вы спрашиваете: "Как на оценку влияют векторы терминов? Ответ на этот вопрос: совсем нет. Термин "частота", "норма" и т. Д. Рассчитывается во время индексации, поэтому не имеет значения, что вы храните.

Основным исключением является PhraseQuery с отстой, который использует термин позиции. Небольшое исключение состоит в том, что пользовательские классы оценки могут использовать любые данные, которые они хотят, поэтому не только векторы терминов, но также полезные данные и т. Д. Могут потенциально влиять на оценку.

Если вы просто делаете TermQueryОднако то, что вы храните, не должно иметь никакого эффекта.

Другие вопросы по тегам