Оценка Lucene: TermQuery без TermVectors
Приводит ли TermQuery:ExtractTerms к большему количеству при включении терминов-векторов / позиций / смещений? (при условии, что совпадение произошло более 1 раза). И наоборот, если информация о инвертированном файле отключена, всегда ли ExtractTerms возвращает 1 и только 1 член?
РЕДАКТИРОВАТЬ: Как и где включение терминов векторов в схеме влияет на скоринг?
1 ответ
TermQuery.ExtractTerms
извлекает термины в запросе, а не результат. Таким образом, поиск "foo:bar" всегда будет возвращать ровно один термин, независимо от того, что находится в индексе.
Для меня это звучит так, как будто вы хотите знать о выделении, а не Query.ExtractTerms
,
РЕДАКТИРОВАТЬ: Исходя из вашего комментария, звучит так, как будто вы спрашиваете: "Как на оценку влияют векторы терминов? Ответ на этот вопрос: совсем нет. Термин "частота", "норма" и т. Д. Рассчитывается во время индексации, поэтому не имеет значения, что вы храните.
Основным исключением является PhraseQuery
с отстой, который использует термин позиции. Небольшое исключение состоит в том, что пользовательские классы оценки могут использовать любые данные, которые они хотят, поэтому не только векторы терминов, но также полезные данные и т. Д. Могут потенциально влиять на оценку.
Если вы просто делаете TermQuery
Однако то, что вы храните, не должно иметь никакого эффекта.