不知道这个方法是否可行,我简单做了个测试。貌似还行。把具体的代码贴出来分享给大家。
通过PaodingAnalyzer、IK_Analyzer两个分词器来实现。具体分出来的无用的字:比如:的、人……,那么我们可以写一个配置文件。先罗列出一些无用的词。那么我们在建立索引的时候。就自动的把这些字给过滤掉。我是这么实现的。
public static TreeSet<String> getExclusiveStringList2(String fieldName, String string){
Pattern pattern = Pattern.compile("(\\|\\|)|\\s|,|(\")");
PaodingAnalyzer pa = new PaodingAnalyzer();
IK_CAnalyzer ik = new IK_CAnalyzer();
Analyzer[] analyzer = {pa, ik};
TreeSet<String> treeSetString = new TreeSet<String>();
for (int i = 0; i < analyzer.length; i++) {
QueryParser parser = new QueryParser(fieldName, analyzer[i]);
try {
String temp = parser.parse(string).toString();
String[] t = pattern.split(temp);
for (int ii = 0; ii < t.length; ii++) {
if (!treeSetString.contains(t[ii])) {
if (!"".equalsIgnoreCase(t[ii]))
treeSetString.add(t[ii]);
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
for (Iterator<String>iterator = treeSetString.iterator(); iterator.hasNext();) {
String name = (String) iterator.next();
System.out.println(name);
}
return treeSetString;
}
一个main方法测试:
public static void main(String[]args) {
String path = "E:\\index";
IndexSearcher indexSearcher = new IndexSearcher(path);
BooleanQuery query = new BooleanQuery();
TermQuery titlQuery;
TermQuery contentQuery;
TreeSet<String> string = BaeeqUtil.getExclusiveStringList2("",
"中国,女人||平江");
for (Iterator<String> iterator = string.iterator(); iterator.hasNext();) {
String str = iterator.next();
titlQuery = new TermQuery(new Term(KeywordBean.FIELD_TITLE, str));
query.add(titlQuery, BooleanClause.Occur.SHOULD);
contentQuery = new TermQuery(new Term(KeywordBean.FIELD_CONTENT, str));
query.add(contentQuery, BooleanClause.Occur.SHOULD);
} SortByLastModifyHits(indexSearcher,query,SearcherUtil.getFilter(contentQuery),SearcherUtil.SORT);
SortByLastModifyHits hits;
synchronized (indexSearcher) {
hits = new SortByLastModifyHits(indexSearcher, query, null,
SearcherUtil.SORT);
}
List<Long> list = hits.searcher();
System.out.println("记录数:" + list.size());
}
打印出来的记录数:5.
如果大家有什么好的办法,可以交流下。
分享到:
相关推荐
NULL 博文链接:https://baobeituping.iteye.com/blog/847077
Lucene 实现控制台操作 C/R/U/D
java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交搜索系统 java代码 结合 lucene 实现的 公交...
本文件含有apache更新的Lucene 5 jar包 有些未更新的jar包仍依赖于之前版本 需另行下载
Lucene 实现的 搜索引擎 例子 ,里面有索引的生成 检查 等等
Lucene实现全文检索
转载请注明出处:http://blog.csdn.net/dongdong9223/article/details/76273859本文出自【我是干勾鱼的博客】
用lucene实现的搜索引擎,支持中文、英文、日文、俄文、德文5种语言的搜索!
Lucene+MySql/Sqlserver2005 例子,自己在学习lucene的过程中,做了这个小列子,是根据数据库的内容来创建索引,里面包括对查找的关键字进行高亮,对现实的内容进行了限定.对Lucene还没有进入深入的理解,里面的代码...
Lucene实现全文搜索,支持英文、模糊和智能查询
全文检索介绍 索引 分词 Lucene介绍 Lucene应用详解 索引器 检索器 条件查询 实用工具及高亮器 Lucene综合应用——仿搜索引擎
NULL 博文链接:https://baobeituping.iteye.com/blog/847043
Lucene最初是由Doug Cutting开发的,在2001年9月做为高质量的开源Java产品加入到Apache软件基金会的 Jakarta家族中.
C#调用Lucene方法-实现快速搜索
在lucene中使用庖丁解牛的分词器,实现类似当当网站的功能实现一个对企业内部产品的检索功能
Lucene实现索引和查询的实例讲解Lucene实现索引和查询的实例讲解
lucene library. lucene-demos-XX.jar The compiled simple example code. luceneweb.war The compiled simple example Web Application. contrib/* Contributed code which extends and enhances Lucene, but...
LUCENE实现的基于RSS的博客搜索引擎.pdfLUCENE实现的基于RSS的博客搜索引擎.pdfLUCENE实现的基于RSS的博客搜索引擎.pdfLUCENE实现的基于RSS的博客搜索引擎.pdf
包含与 lucene 和 solr 一起使用的搜索算法 bbox 查询: 完全删除 solr 索引: curl -H "Content-Type: text/xml" --data-binary ' : ' curl -d ' ' curl -d '' export CLASSPATH="<lucene>/lucene/replicator/...
java(结合lucene)版的公交搜索系统(javaWeb+lucene+jsp+tomcat+eclipse/idea) java(结合lucene)版的公交搜索系统(javaWeb+lucene+jsp+tomcat+eclipse/idea) java(结合lucene)版的公交搜索系统(javaWeb+lucene+...