Lucene如何将含有某一关键字的文档过滤掉?

问题描述

比如我要搜索含“房间”一词的文档,同时将含有“白色”字眼的搜索结果给筛掉,请问应该怎么写呢?之前从Lucene的API手册上发现有一个org.apache.lucene.search.TermsFilter的类可能可以实现这个功能,但在写代码的时候却老是引入不了这个类。不知道这个类放在哪个jar包里。。当然,如果有其它更好的方法的话也可以分享一下。 问题补充:beneo 写道

解决方案

TermsFilter不是要你引入的,而是要和FilteredQuery一起用的。。此外,TermsFilter不是过滤掉你不要的,而是只获得含有这些terms的doc集合构建一个BooleanQueryBooleanQuery bq = new BooleanQuery();TermQuery tq = new TermQuery(new Term(k, v));// 添加你自己的查询bq.add(xx, BooleanClause.Occur.MUST);bq.add(tq, BooleanClause.Occur.MUST_NOT );searcher.search(bq, ...);
解决方案二:
有如此多的query可以用你不妨自己寻找,出现问题我们可以一起交流 <li> {@link TermQuery} <li> {@link MultiTermQuery} <li> {@link BooleanQuery} <li> {@link WildcardQuery} <li> {@link PhraseQuery} <li> {@link PrefixQuery} <li> {@link MultiPhraseQuery} <li> {@link FuzzyQuery} <li> {@link TermRangeQuery} <li> {@link NumericRangeQuery} <li> {@link org.apache.lucene.search.spans.SpanQuery}
解决方案三:
TermsFilter不是要你引入的,而是要和FilteredQuery一起用的。。

时间: 2024-11-05 06:03:41

Lucene如何将含有某一关键字的文档过滤掉?的相关文章

lucene 文档评分 及 CustomScoreQuery

1.评分 评分公式可见<lucence 文档评分公式> 2.解释 org.apache.lucene.search.Explanation 类,用于解释评分细节. String org.apache.lucene.search.Explanation.toString() 文本格式输出. String org.apache.lucene.search.Explanation.toHtml() html格式输出.例子见图2-1. 图2-1 toHtml()格式的explanation Expla

删除一个文件夹目录里面含有很多文档的时候报错

今天同事在测试文件同步功能时,发现当删除一个文件夹目录,里面含有很多文档的时候就报: Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:103) at org.apache.commons.dbc

Lucene 3.6.2入门(14) SolrJ操作索引和搜索文档以及整合中文分词

package com.jadyer.solrj; import java.util.ArrayList; import java.util.List; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.sol

如何在Word 2013中插入文档摘要和关键字

用户可以根据需要在Word2013中插入文档摘要.文档关键词.文档作者等文档属性信息,这些内容可以插入到Word文档的任意位置(正文任意位置或页眉页脚),以方便阅读者了解该文档更丰富的信息.在Word2013文档中插入文档摘要和文档关键字的步骤如下所述: 第1步,打开Word2013文档窗口,并将插入点光标定位到需要插入文档信息的位置.切换到"插入"功能区,在"文本"分组中单击"文档部件"按钮.在打开的"文档部件"菜单中指向&

Word2013怎么插入文档摘要和关键字?

  Word2013怎么插入文档摘要和关键字?           第1步,打开Word2013文档窗口,并将插入点光标定位到需要插入文档信息的位置.切换到"插入"功能区,在"文本"分组中单击"文档部件"按钮.在打开的"文档部件"菜单中指向"文档属性"选项,并在打开的"文档属性"列表中选择"摘要"或"关键字"选项,如图1所示. Word2013 第

怎样在Word2013中插入文档摘要和关键字

  第1步,打开Word2013文档窗口,并将插入点光标定位到需要插入文档信息的位置.切换到"插入"功能区,在"文本"分组中单击"文档部件"按钮.在打开的"文档部件"菜单中指向"文档属性"选项,并在打开的"文档属性"列表中选择"摘要"或"关键字"选项,如图1所示. 图1 选择"关键字"或"摘要"选项 第2步,

在Word2007文档中修改剪贴画关键字

  通过编辑Word2007剪贴画的关键字,用户可以更方便地查找所需要的剪贴画.不过只有保存在"我的收藏集"中的剪贴画才可以编辑关键字,而Office收藏集和Web收藏集中的剪贴画则不能编辑关键字.用户可以将Office收藏集和Web收藏集中的剪贴画复制到我的收藏集中,然后再修改关键字. 在Word2007文档中修改剪贴画关键字的步骤如下所述: 第1步,打开Word2007文档窗口,在"剪贴画"任务窗格中通过特定关键字搜索Office收藏集和Web收藏集中的剪贴画(

c++-关于MFC含有多个对话框的单文档程序 文件操作

问题描述 关于MFC含有多个对话框的单文档程序 文件操作 最近在做MFC的课程设计,有关单文档的.涉及到txt文件的操作 有什么好的办法可以方便对文件的操作 我之前做C语言的课程设计的时候是将txt文件里的东西全都读到一个全局变量的结构体数组里,程序对数组操作完之后把原来的文件删掉再重新把数组里的内容写进去. 虽然根据这种办法可以用类对象数组来处理,但是由于MFC涉及到多个对话框,感觉这种办法不太好. 还麻烦各位大神指教 解决方案 在doc类里面去做文件操作,单文档多视图的意思是,一个doc类对

lucene net-Lucene.net 创建索引 txt文档

问题描述 Lucene.net 创建索引 txt文档 怎么用Lucene.net对已有的txt文本创建索引,索引文件__r.cfs,_r.cfx,segments.gen,segments_m是编代码之后自动生成的还是怎么来的?大致步骤是什么样的. 解决方案 http://blog.csdn.net/xuezhongsong/article/details/4388241 解决方案二: Lucene.Net创建索引