Могу ли я увеличить различные поля в MultiFieldQueryParser с различными факторами? Кроме того, каково максимальное значение коэффициента усиления, которое я могу присвоить полю?Коэффициент усиления в MultiFieldQueryParser
Спасибо тонну! Ed
Могу ли я увеличить различные поля в MultiFieldQueryParser с различными факторами? Кроме того, каково максимальное значение коэффициента усиления, которое я могу присвоить полю?Коэффициент усиления в MultiFieldQueryParser
Спасибо тонну! Ed
MultiFieldQueryParser
имеет [конструктор] [1], который принимает карту усилений. Вы можете использовать его с чем-то вроде этого:
String[] fields = new String[] { "title", "keywords", "text" };
HashMap<String,Float> boosts = new HashMap<String,Float>();
boosts.put("title", 10);
boosts.put("keywords", 5);
MultiFieldQueryParser queryParser = new MultiFieldQueryParser(
fields,
new StandardAnalyzer(),
boosts
);
Что касается максимального усиления, я не уверен, но вы не должны думать о повышении в абсолютном выражении в любом случае. Просто используйте коэффициент усиления, который имеет смысл. Также см. this question.
[1]: https://lucene.apache.org/core/4_4_0/queryparser/org/apache/lucene/queryparser/classic/MultiFieldQueryParser.html#MultiFieldQueryParser(org.apache.lucene.util.Version, java.lang.String [], org.apache.lucene.analysis.Analyzer, java.util.Map)
Привет, спасибо за Ваш ответ .... Я использую Lucene .net version 2.0.0.4 Я не вижу конструктора MultiFieldQueryParser, принимающего значения повышения. MultiFieldQueryParser multiFieldQueryParser = new MultiFieldQueryParser (поля, _анализатор); Могу я узнать, какую версию Lucene вы используете? Спасибо. –
Параметр boosts был доступен только в Lucene 2.4. Если вы не можете обновить, вы можете рассмотреть возможность копирования кода в свой собственный MyMutliFieldQueryParser. Это не так много кода. – itsadok
Возможно, вам придется переносить код из java ... Я не смог найти исходный код lucene.net в Интернете (svn.apache.org не работает ATM). – itsadok