org.apache.lucene.util.QueryBuilder.addMinShouldMatchToBoolean()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(2.2k)|赞(0)|评价(0)|浏览(81)

本文整理了Java中org.apache.lucene.util.QueryBuilder.addMinShouldMatchToBoolean方法的一些代码示例,展示了QueryBuilder.addMinShouldMatchToBoolean的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QueryBuilder.addMinShouldMatchToBoolean方法的具体详情如下:
包路径:org.apache.lucene.util.QueryBuilder
类名称:QueryBuilder
方法名:addMinShouldMatchToBoolean

QueryBuilder.addMinShouldMatchToBoolean介绍

[英]Rebuilds a boolean query and sets a new minimum number should match value.
[中]重建布尔查询,并设置新的最小值。

代码示例

代码示例来源:origin: org.apache.lucene/lucene-core

/** 
 * Creates a minimum-should-match query from the query text.
 * <p>
 * @param field field name
 * @param queryText text to be passed to the analyzer
 * @param fraction of query terms {@code [0..1]} that should match 
 * @return {@code TermQuery} or {@code BooleanQuery}, based on the analysis 
 *         of {@code queryText}
 */
public Query createMinShouldMatchQuery(String field, String queryText, float fraction) {
 if (Float.isNaN(fraction) || fraction < 0 || fraction > 1) {
  throw new IllegalArgumentException("fraction should be >= 0 and <= 1");
 }
 
 // TODO: weird that BQ equals/rewrite/scorer doesn't handle this?
 if (fraction == 1) {
  return createBooleanQuery(field, queryText, BooleanClause.Occur.MUST);
 }
 
 Query query = createFieldQuery(analyzer, BooleanClause.Occur.SHOULD, field, queryText, false, 0);
 if (query instanceof BooleanQuery) {
  query = addMinShouldMatchToBoolean((BooleanQuery) query, fraction);
 }
 return query;
}

代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.lucene

/** 
 * Creates a minimum-should-match query from the query text.
 * <p>
 * @param field field name
 * @param queryText text to be passed to the analyzer
 * @param fraction of query terms {@code [0..1]} that should match 
 * @return {@code TermQuery} or {@code BooleanQuery}, based on the analysis 
 *         of {@code queryText}
 */
public Query createMinShouldMatchQuery(String field, String queryText, float fraction) {
 if (Float.isNaN(fraction) || fraction < 0 || fraction > 1) {
  throw new IllegalArgumentException("fraction should be >= 0 and <= 1");
 }
 
 // TODO: weird that BQ equals/rewrite/scorer doesn't handle this?
 if (fraction == 1) {
  return createBooleanQuery(field, queryText, BooleanClause.Occur.MUST);
 }
 
 Query query = createFieldQuery(analyzer, BooleanClause.Occur.SHOULD, field, queryText, false, 0);
 if (query instanceof BooleanQuery) {
  query = addMinShouldMatchToBoolean((BooleanQuery) query, fraction);
 }
 return query;
}

相关文章