不知道这个方法是否可行,我简单做了个测试。貌似还行。把具体的代码贴出来分享给大家。
通过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.
如果大家有什么好的办法,可以交流下。
分享到:
相关推荐
“Lucene 搜索方法(多短语搜索)”这一标题指出我们要讨论的是如何在Lucene中执行多短语搜索。Lucene是一个高性能、全文本搜索库,它提供了一个强大的文本检索框架,使得开发者能够为他们的应用程序添加高级搜索...
本文将聚焦于Lucene中的短语搜索,一种能精确匹配多个词汇顺序的搜索方法。通过分析和实践`DemoData.java`和`PhraseQueryDemo.java`这两个示例代码,我们将深入探讨这一主题。 首先,短语搜索是Lucene中的一种高级...
《基于Lucene的去词、禁词与搜索操作详解》 在信息检索和文本处理领域,Lucene是一款广泛使用的开源全文搜索引擎库。它为开发者提供了强大的文本分析、索引和查询功能,使得构建高效的搜索应用变得简单。本资料包...
**Lucene实现企业产品检索** Lucene是一款强大的全文搜索引擎库,由Apache软件基金会开发,它为企业构建高效、可扩展的搜索功能提供了强大的支持。在本文中,我们将深入探讨如何使用Lucene来实现一个类似当当网的...
在"Lucene全文搜索_LuceneJava全文搜索_"这个主题中,我们将深入探讨Lucene如何在Java环境中实现高效的全文搜索引擎。首先,Lucene的核心概念包括文档(Document)、字段(Field)、索引(Index)和搜索(Search)。...
以下是Lucene实现的核心知识点: 1. **索引过程**: - `IndexWriter`:这是创建和更新Lucene索引的主要类。通过这个类,你可以将文档添加到索引中,或者对已有索引进行修改和删除。 - `Analyzer`:用于分词和标准...
3. 高级搜索:Lucene提供了短语查询、模糊查询、范围查询等高级功能,可以根据需求灵活使用。 4. 排序与过滤:除了基于相关性得分排序外,还可以自定义排序规则。通过Filter机制,可以对搜索结果进行过滤,如按时间...
在这个使用案例中,我们将深入探讨如何利用Lucene实现对Word文档中的关键字检索并高亮显示结果。 首先,我们需要理解Lucene的基本工作原理。Lucene通过建立倒排索引(Inverted Index)来加速查询。倒排索引是一种...
首先,索引是Lucene实现快速检索的基础,类似于图书的目录,通过构建索引,Lucene可以迅速定位到包含特定查询词的文档。其次,文档是Lucene处理的基本单位,可以视为一个包含多个字段的数据结构,每个字段可以有不同...
总之,Lucene站内搜索提供了一套强大且灵活的搜索框架,通过合理的配置和优化,可以实现高效、准确的站内信息检索。在实际项目中,开发者需要根据具体需求调整Analyzer、索引策略以及查询处理方式,以实现最佳的搜索...
Lucene的核心是建立索引,索引过程包括分词、词干提取、停用词过滤等步骤,这些预处理操作将原始文本转换为可供快速搜索的形式。分词是将连续的字符序列切分成有意义的词汇单位,如单词或短语;词干提取则是将单词...
### 基于Lucene的WEB站内搜索引擎研究与实现 #### 一、搜索引擎基本原理与Lucene概述 搜索引擎的基本原理涉及对大量文档或网页进行分析、索引和检索的过程。这一过程通常包括数据采集(爬虫)、预处理(如分词、...
综上所述,基于LUCENE的搜索引擎设计与实现涉及了信息检索、自然语言处理、数据结构等多个领域的知识。通过学习和实践,我们可以利用LUCENE的强大功能,构建出高效、智能的搜索引擎,满足各种场景下的信息检索需求。
Lucene是一个高性能、全文本搜索库,它为开发者提供了在Java应用程序中实现全文检索的工具集。这个名为“lucene搜索引擎项目”的资源,旨在帮助用户更好地理解和应用Lucene来构建自己的搜索引擎。下面将详细探讨...
Apache Lucene 是一个开源全文搜索引擎库,为开发者提供了在Java应用程序中实现高效、可扩展的搜索功能的工具。在本篇文章中,我们将深入探讨Lucene 3.6版本中的搜索功能,通过实例解析其核心概念和操作流程。 一、...
Lucene是一个开源全文搜索引擎库,由Apache软件基金会开发并维护。它主要使用Java编写,提供了高效、可扩展的文本检索功能。在这个压缩包文件中,包含的源代码着重展示了如何利用Lucene进行索引创建和搜索操作,这些...
6. **多线程和分布式**:Lucene支持多线程索引和搜索,通过Solr或Elasticsearch等工具,还可以实现分布式搜索。 7. **倒排索引**:Lucene的核心是倒排索引,它允许快速定位含有特定术语的文档,极大提高了搜索效率...
除了基础的搜索功能,Lucene还支持布尔查询、短语查询、模糊查询、评分和排序等高级搜索特性。此外,通过使用Lucene的更新和删除机制,可以确保索引始终与数据源保持同步,保证搜索的准确性。 综上所述,基于Lucene...
- 高级搜索特性,如短语搜索、近似搜索、拼写纠错 - 搜索结果的相关性与排序 - 多线程与分布式搜索 - 实战示例和最佳实践 **尚学堂科技_张志宇_lucene.ppt** 这份PPT可能包含对Lucene基础知识的快速概览,如Lucene...