热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javaphrase_JavaPhraseQuery.setBoost方法代码示例

importorg.apache.lucene.search.PhraseQuery;导入方法依赖的package包类publicstaticBooleanQuerybuildQu

import org.apache.lucene.search.PhraseQuery; //导入方法依赖的package包/类

public static BooleanQuery buildQuery(String text, String field) throws IOException {

BooleanQuery fullQuery = new BooleanQuery();

TokenStream tokStream = ANALYZER.tokenStream(field, text);

try {

tokStream.reset();

Term lastTerm = null;

while (tokStream.incrementToken()) {

String termStr = tokStream.getAttribute(CharTermAttribute.class).toString();

Term term = new Term(field, termStr);

TermQuery termQuery = new TermQuery(term);

termQuery.setBoost(0.8f);

fullQuery.add(termQuery, BooleanClause.Occur.SHOULD);

List expansionWords = WordNetExpansion.getStrictExpansion(termStr);

if (expansionWords != null) {

for (String expTermStr : expansionWords) {

TermQuery expTermQuery = new TermQuery(new Term(field, expTermStr));

expTermQuery.setBoost(0.4f);

fullQuery.add(expTermQuery, BooleanClause.Occur.SHOULD);

}

}

if (lastTerm != null) {

PhraseQuery bigram = new PhraseQuery();

bigram.add(lastTerm);

bigram.add(term);

bigram.setBoost(0.1f);

fullQuery.add(bigram, BooleanClause.Occur.SHOULD);

if (USE_PROXIMITY_QUERY) {

SpanNearQuery spanNearQuery = new SpanNearQuery(new SpanQuery[]{

new SpanTermQuery(lastTerm),

new SpanTermQuery(term)},

6,

false);

spanNearQuery.setBoost(0.1f);

fullQuery.add(spanNearQuery, BooleanClause.Occur.SHOULD);

}

}

lastTerm = term;

}

tokStream.end();

} finally {

tokStream.close();

}

return fullQuery;

}



推荐阅读
  • 本文介绍了JSP的基本概念、常用标签及其功能,并通过示例详细说明了如何在JSP页面中使用Java代码。 ... [详细]
  • 本文深入探讨了JLine库中的ConsoleReader.drawBuffer()方法的使用场景和具体实现,通过多个实际代码示例,帮助开发者更好地理解和应用此方法。 ... [详细]
  • Activity跳转动画 无缝衔接
    Activity跳转动画 无缝衔接 ... [详细]
  • MVC框架下使用DataGrid实现时间筛选与枚举填充
    本文介绍如何在ASP.NET MVC项目中利用DataGrid组件增强搜索功能,具体包括使用jQuery UI的DatePicker插件添加时间筛选条件,并通过枚举数据填充下拉列表。 ... [详细]
  • 深入解析Android Activity生命周期
    本文详细探讨了Android中Activity的生命周期,通过实例代码和详细的步骤说明,帮助开发者更好地理解和掌握Activity各个阶段的行为。 ... [详细]
  • SQLite是一种轻量级的关系型数据库管理系统,尽管体积小巧,却能支持高达2TB的数据库容量,每个数据库以单个文件形式存储。本文将详细介绍SQLite在Android开发中的应用,包括其数据存储机制、事务处理方式及数据类型的动态特性。 ... [详细]
  • 字符、字符串和文本的处理之Char类型
    .NetFramework中处理字符和字符串的主要有以下这么几个类:(1)、System.Char类一基础字符串处理类(2)、System.String类一处理不可变的字符串(一经 ... [详细]
  • 本文详细探讨了 Java 中 com.codahale.metrics.servlets.AdminServlet.() 方法的实现与应用,并提供了多个实际项目中的代码示例,帮助开发者更好地理解和使用这一方法。 ... [详细]
  • 基于Flutter实现风车加载组件的制作_Android
    Flutter官方提供了诸如 CircularProgressIndicator和 LinearProgressIndicator两种常见的加载指示组件,但是说实话,实在太普通,所 ... [详细]
  • 本教程旨在指导开发者如何在Android应用中通过ViewPager组件实现图片轮播功能,适用于初学者和有一定经验的开发者,帮助提升应用的视觉吸引力。 ... [详细]
  • 基于OpenCV的小型图像检索系统开发指南
    本文详细介绍了如何利用OpenCV构建一个高效的小型图像检索系统,涵盖从图像特征提取、视觉词汇表构建到图像数据库创建及在线检索的全过程。 ... [详细]
  • 本文详细介绍了Spring AOP注解的基本概念及其实现方式,并通过实例演示了如何在项目中使用这些注解进行面向切面的编程。旨在帮助开发者更好地理解和运用Spring AOP功能。 ... [详细]
  • 在使用Visual Studio构建项目时遇到了IntelliSense错误,具体表现为预期的')'未找到。本文提供了详细的解决方案和可能的原因分析。 ... [详细]
  • 近期在研究Java IO流技术时,遇到了一个关于如何正确读取Doc文档而不出现乱码的问题。本文将详细介绍使用Apache POI库处理Doc和Docx文件的具体方法,包括必要的库引入和示例代码。 ... [详细]
  • ZOJ 2760 - 最大流问题
    题目链接:How Many Shortest Paths。题目描述:给定一个包含n个节点的有向图,通过一个n*n的矩阵来表示。矩阵中的a[i][j]值为-1表示从节点i到节点j无直接路径;否则,该值表示从i到j的路径长度。输入起点vs和终点vt,计算从vs到vt的所有不共享任何边的最短路径数量。如果起点和终点相同,则输出无穷大。 ... [详细]
author-avatar
滴滴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有