Разница в оценке между многозначным полем и токенизированным полем - PullRequest
2 голосов
/ 06 января 2012

Например, у меня есть несколько тегов на документ. Я могу

  • индексировать их как разделение строки текста на пробел, используя WhiteSpaceTokenizer. (пример "tag1 tag2 tag3")
  • добавить их отдельно в одно имя поля несколько раз, используя KeywordAnalyzer ( пример doc.addField("tags1", "tag1"); doc.addField("tags", "tag2"); doc.addField("tags", "tag23) )

Оба подхода будут работать. Вопрос в том, насколько отличаться будет оценка для этих типов индексации? (то есть коэффициент нормализации поля, счетчик tf / idf, вычисление длины поля, коэффициент наклона и т. д.)

Ответы [ 2 ]

1 голос
/ 06 января 2012

Lucene в любом случае объединит все значения для многозначного файла, хранящегося за сценой, поэтому он не будет сильно отличаться от вашего первого случая, если вообще будет. Если вы используете теги только в качестве фильтров (дайте мне все документы, отмеченные тегом tag2), то вы определенно не увидите никакой разницы.

0 голосов
/ 06 января 2012

Я думаю, что многозначность будет более точной.

представьте токенизированную строку «веб-разработчик паука»

против

многозначное поле со значениями «паук» и «веб-разработчик»

aпоиск «веб-разработчик» будет соответствовать обоим полям, но сопоставление с полем с несколькими значениями можно рассматривать как более точное.

...