-
通过 lucene 中QueryParser 设置权重的疑问5
我想通过query.setBoost 到达某个搜索的条件优先排序。通过 QueryParser 来实现。但是起不了效果。
我的代码如下
//通过“^5.0”设置该字段的权重
String keyWord = "+AREAID:('-1') +TYPE_FLAG:('19001_knowedge'^1.0 '19002_quest'^5.0 'applicationTool'^2.0 )^10.0 +STATE_ID:(+(4))";
Query keywordquery = new QueryParser(Version.LUCENE_CURRENT, "", analyzer).parse(keyWord);
BooleanQuery booleanQuery = new BooleanQuery();
booleanQuery.add(new BooleanClause(keywordQueryGlobal, Occur.MUST));
TopDocs topdocs = searcher.search(booleanQuery,
null,
ConfigHandler.getCb().getMaxCount());
每次搜索出来的结果都没有预想的TYPE_FLAG字段为19002_quest排在前面。
我觉得太奇怪了。2013年1月23日 09:48
目前还没有答案
相关推荐
6. **多字段搜索**:在3.0.3版本中,你可以学习如何对多个字段进行联合搜索,以及如何设置字段的权重来影响搜索结果。 7. **更新与删除**:Lucene支持动态更新和删除文档,这在实际应用中非常实用。了解如何使用`...
4. **搜索索引**:通过 `IndexReader` 和 `IndexSearcher` 访问索引,使用 `QueryParser` 构建查询,执行搜索。 5. **结果排序**:根据相关性或其他因素对搜索结果进行排序。 6. **读取结果**:使用 `ScoreDoc` 和 `...
此外,Lucene还允许通过QueryParser设置查询级别的评分策略,比如使用`boost`关键字来提高某些查询词的权重。 总的来说,理解并掌握Lucene的评分公式对于优化搜索结果的质量至关重要。通过对评分公式的深入研究和...
文章中的新闻搜索引擎通过使用Lucene的API,相比普通搜索引擎,提高了搜索的精确性。 8. 新闻搜索引擎的改进 新闻搜索引擎的构建过程中,可以针对新闻内容的特点进行优化,比如增加时间因子权重、优化关键词提取...
5. **查询解析**:Lucene支持多种查询语法,包括布尔查询、短语查询、近似查询等,通过QueryParser解析用户输入的查询字符串。 **二、Lucene 3.0 的主要特性** 1. **更高效的搜索**:Lucene 3.0通过优化搜索算法和...
通过设置不同的权重,我们可以调整不同字段的重要性,使搜索结果更加精准。 2. **自定义分析器**:分析器是处理文本输入的关键组件,它负责分词、去除停用词和词形还原等工作。在项目中,可能需要根据特定领域的...
2. **多字段搜索(Multi-Field Search)**: 用户可以同时在多个字段上进行搜索,Lucene 4.6.0 对此提供了支持,并且允许设置不同字段的权重。 3. **复杂查询支持(Advanced Query Support)**: 包括短语查询、布尔...
在Lucene 4.6.0中,主要API包括Analyzer、IndexWriter、Directory、QueryParser、Searcher等。Analyzer用于定义文本分析规则,如使用标准分词器或自定义分词策略。IndexWriter负责创建和更新索引,可以控制段合并...
通过`Directory`接口,如`FSDirectory`,Lucene可以读写文件系统中的索引。`IndexWriter`类负责实际的索引构建过程,它允许添加、删除和更新文档。每个文档由一系列字段(Field)组成,每个字段有其特定的类型(如...
Lucene默认使用TF-IDF(Term Frequency-Inverse Document Frequency)算法进行文档排序,即高频率且在少部分文档中出现的词会被赋予更高的权重。此外,还可以自定义评分函数以满足特定的排序需求。 **7. 部署与运行...
标题中的"lucene-3.5.0.jar"是Lucene的一个特定版本——3.5.0的Java档案文件(JAR),这个版本的发布标志着Lucene在全文搜索领域的又一里程碑。本文将深入探讨Lucene 3.5.0的核心特性和使用技巧。 首先,Lucene是一...
用户可以通过QueryParser或直接创建Query对象来构造查询。5.2.1版本中,查询解析器已经优化,能更好地处理用户输入,提高查询性能。 5. **搜索(Search)** 通过Searcher对象,我们可以执行查询并在索引中找到匹配的...
1. 多字段搜索:Lucene 2.9.4支持在多个字段上同时进行搜索,用户可以自定义权重,调整不同字段的匹配度。 2. 增量索引:当新数据到来时,无需重建整个索引,只需追加新的文档或更新已有文档即可。 3. 分片与分布式...
- **多字段搜索**:可以在多个字段上同时进行搜索,并通过权重设置来调整不同字段的重要性。 - **近实时搜索**:通过NRT(Near Real Time)机制,即使在索引更新后也能迅速反映出新的数据。 - **DocValues**:...
1. **设置环境**:首先,你需要在你的开发环境中安装Java和Apache Maven(或者Gradle),并配置好Lucene的相关依赖库。 2. **索引创建**:使用Lucene的API,我们可以读取网页内容并创建索引。这通常涉及到以下几个...
Lucene允许对不同字段设置不同的分析器和权重,源码中`Field`类及其相关处理展示了这一功能。 7. **性能优化**: Lucene提供了缓存机制以提高性能,如`BitSet`和`FilterCache`。此外,`Directory`接口管理索引的...
这涉及到计算文档和查询向量之间的余弦相似度,其中向量的维度对应于词典中的词项,权重反映了词的重要性。 ### Lucene的总体架构 Lucene的架构设计围绕着高效索引和快速检索。其主要组件包括: - **IndexWriter*...
Lucene的强大之处在于其灵活性和可扩展性,开发者可以通过自定义Analyzer和QueryParser实现特定的需求。通过不断优化和调整,可以在保持高效性能的同时,提升搜索的准确性和用户体验。对于学习和开发基于Lucene的...
3. **过滤器和 Boosting**:通过Filter可以限制搜索范围,而Boosting可以调整特定字段或文档的权重,影响它们在结果中的排名。 4. **多字段搜索**:支持在多个字段上同时进行搜索,提高查全率。 5. **自定义排序**:...