短语搜索PhraseQuery

package query;

import java.io.IOException;

import org.apache.lucene.analysis.standard.StandardAnalyzer;

import org.apache.lucene.document.Document;

import org.apache.lucene.document.Field;

import org.apache.lucene.index.IndexWriter;

import org.apache.lucene.index.Term;

import org.apache.lucene.search.BooleanClause;

import org.apache.lucene.search.BooleanQuery;

import org.apache.lucene.search.Hits;

import org.apache.lucene.search.IndexSearcher;

import org.apache.lucene.search.PhraseQuery;

import org.apache.lucene.search.TermQuery;

public class Phrase_Query {

public Phrase_Query(String INDEX_STORE){

try{

IndexWriter writer = new IndexWriter(INDEX_STORE, new StandardAnalyzer(), true);

writer.setUseCompoundFile(false);

//创建3个文档

Document doc1 = new Document();

Document doc2 = new Document();

Document doc3 = new Document();

Field f1 = new Field("bookname", "钢铁是怎样炼成的", Field.Store.YES, Field.Index.TOKENIZED);

Field f2 = new Field("bookname", "英雄儿女", Field.Store.YES, Field.Index.TOKENIZED);

Field f3 = new Field("bookname", "篱笆女人和狗", Field.Store.YES, Field.Index.TOKENIZED);

doc1.add(f1);

doc2.add(f2);

doc3.add(f3);

writer.addDocument(doc1);

writer.addDocument(doc2);

writer.addDocument(doc3);

writer.close();

IndexSearcher searcher = new IndexSearcher(INDEX_STORE);

//创建一个PharseQuery,并搜索短语"钢铁"

PhraseQuery query = new PhraseQuery();

query.add(new Term("bookname","钢"));

query.add(new Term("bookname","铁"));

//打印查询结构

Hits hits =searcher.search(query);

for(int i = 0; i < hits.length(); i++){

System.out.println(hits.doc(i));

}

}catch(IOException e){

e.printStackTrace();

}

}

public static void main(String[] args) {

// TODO Auto-generated method stub

System.out.println("开始进行短语搜索----------->>");

Phrase_Query hq = new Phrase_Query("E:\\Lucene项目\\索引文件");

System.out.println("结束短语搜索----------->>");

}

}

时间: 2024-12-15 20:42:38

短语搜索PhraseQuery的相关文章

短语搜索

短语搜索 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte 总提交:535            测试通过:170 描述 常见文本编辑器的一个功能是搜索,打开一段英文文字,根据一个给定的英文短语,可以搜索得到这个短语在文章中的位置,短语有可能重复出现.现请求出给定的短语在一段文字中出现的最后一个位置.文字中单词从1开始编号,所求的位置为短语第1个单词在这段文字中对应单词的编号. 输入 多行,每行以 # 为结束,第1行为一段英文文字(单词

短语搜索,高亮搜索

接着上节: http://www.cnblogs.com/spectrelb/p/7977051.html 短语搜索 找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者短语 . 比如, 我们想执行这样一个查询,仅匹配同时包含 "rock" 和 "climbing" ,并且 二者以短语 "rock climbing" 的形式紧挨着的雇员记录. 为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询 G

Elasticsearch短语搜索——match_phrase

找出一个属性中的独立单词是没有问题的,但有时候想要精确匹配一系列单词或者短语 . 比如, 我们想执行这样一个查询,仅匹配同时包含 "rock" 和 "climbing" ,并且 二者以短语 "rock climbing" 的形式紧挨着的雇员记录. 为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询: curl -XGET 'localhost:9200/megacorp/employee/_search?pretty

lucene 入门整理

目录[-] 1.    概述 2.    lucene 的包结构 3.    索引文件格式 4.    lucene中主要的类 4.1. Document文档类 4.1.1.常用方法 4.1.2.示例 4.2. Field字段类 4.2.1.构造方法 4.2.2.Store类 4.2.3.Index类 4.2.4.示例 4.3. IndexWriter类 4.3.1.构造方法 4.3.2.添加文档 4.3.3.性能参数 4.3.4.限制Field的长度 4.3.5.复合索引格式 4.3.6.优化

基于lucene的案例开发:Query查询

转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/42969443 在Lucene索引的搜索过程中,构建Query对象是一个十分重要的过程.对于Query的理解,可以把它想象成数据库SQL查询语句中的where条件(当然Query的功能要比sql强大很多),在这篇博客中,我们将重点介绍几种常用的Query子类:QueryParser. MultiFieldQueryParser.TermQuery .PrefixQuery. Ph

Lucene Query种类

1.3. 按词条搜索-TermQuery Query query = null; query=new TermQuery(new Term("name","word1 a and")); hits=searcher.search(query);// 查找 name:word1 a and 共0个结果 System.out.println("查找 "+query.toString()+" 共" + hits.length() +

Lucene学习:lucene查询

1.1. Lucene查询 在学习Lucene的查询方法前,先了解一下下面几个类: 1.1.1. Query 封装某种查询类型的具体子类,配置查询的查询条件.Query实例将被传递给IndexSearcher的search方法.下面是常用的Query子类: l 通过项进行搜索 TermQuery类 l 在指定的项范围内搜索 TermRangeQuery类 l 通过字符串搜索 PrefixQuery类 l 组合查询 BooleanQuery类 l 通过短语搜索 PhraseQuery类 l 通配符

多短语搜搜索

/* * 该方法基于短语搜索 * 实现了多个短语进行搜素的功能 * */ package query; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene

使用 Apache Lucene 搜索文本

好东西 下手绝不留情 转自 http://www.ibm.com/developerworks/cn/opensource/os-apache-lucenesearch/ 简介 Lucene 是一个开源.高度可扩展的搜索引擎库,可以从 Apache Software Foundation 获取.您可以将 Lucene 用于商业和开源应用程序.Lucene 强大的 API 主要关注文本索引和搜索.它可以用于为各种应用程序构建搜索功能,比如电子邮件客户端.邮件列表.Web 搜索.数据库搜索等等.Wi