Lucene2.4之PhraseQuery的用法
2008-11-06 16:40
525 查看
代码如下:
package demo;
import java.io.IOException;
import org.apache.lucene.analysis.WhitespaceAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.RAMDirectory;
public class TestLucene {
public static void main(String[] args) throws CorruptIndexException, LockObtainFailedException, IOException {
String content = "the quick brown fox jumped over the lazy dog";
RAMDirectory directory = new RAMDirectory();
IndexWriter writer = new IndexWriter(directory, new WhitespaceAnalyzer(), true, new IndexWriter.MaxFieldLength(1000));
Document doc = new Document();
doc.add(new Field("field", content, Field.Store.YES, Field.Index.ANALYZED));
writer.addDocument(doc);
writer.close();
IndexSearcher searcher = new IndexSearcher(directory);
PhraseQuery query = new PhraseQuery();
query.setSlop(3);
String[] phrase = new String[]{"fox", "quick"};
for (int i = 0; i < phrase.length; i++) {
query.add(new Term("field", phrase[i]));
}
TopDocs topDocs = searcher.search(query, 100);
ScoreDoc[] hits = topDocs.scoreDocs;
System.out.println("共有" + searcher.maxDoc() + "条索引,命中" + hits.length + "条");
for (int i = 0; i < hits.length; i++) {
int DocId = hits[i].doc;
Document document = searcher.doc(DocId);
System.out.println(DocId + ":" + document.get("field"));
}
searcher.close();
}
}
运行结果:
共有1条索引,命中1条
0:the quick brown fox jumped over the lazy dog
package demo;
import java.io.IOException;
import org.apache.lucene.analysis.WhitespaceAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PhraseQuery;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.RAMDirectory;
public class TestLucene {
public static void main(String[] args) throws CorruptIndexException, LockObtainFailedException, IOException {
String content = "the quick brown fox jumped over the lazy dog";
RAMDirectory directory = new RAMDirectory();
IndexWriter writer = new IndexWriter(directory, new WhitespaceAnalyzer(), true, new IndexWriter.MaxFieldLength(1000));
Document doc = new Document();
doc.add(new Field("field", content, Field.Store.YES, Field.Index.ANALYZED));
writer.addDocument(doc);
writer.close();
IndexSearcher searcher = new IndexSearcher(directory);
PhraseQuery query = new PhraseQuery();
query.setSlop(3);
String[] phrase = new String[]{"fox", "quick"};
for (int i = 0; i < phrase.length; i++) {
query.add(new Term("field", phrase[i]));
}
TopDocs topDocs = searcher.search(query, 100);
ScoreDoc[] hits = topDocs.scoreDocs;
System.out.println("共有" + searcher.maxDoc() + "条索引,命中" + hits.length + "条");
for (int i = 0; i < hits.length; i++) {
int DocId = hits[i].doc;
Document document = searcher.doc(DocId);
System.out.println(DocId + ":" + document.get("field"));
}
searcher.close();
}
}
运行结果:
共有1条索引,命中1条
0:the quick brown fox jumped over the lazy dog
相关文章推荐
- lucene-使用PhrasePrefixQuery和多个域上的查询
- lucene QueryParser用法示例
- (转)Lucene PhraseQuery、SpanQuery和PhrasePrefixQuery
- lucene-查询query->PhrasePrefixQuery使用短语缀搜索
- 对于非数据库字段的查询过滤以及app_query.append的用法
- Request.QueryString 的用法
- Lucene NumericRangeQuery的初步理解
- HibernateTemplate的queryForList(sql)用法
- QueryBuildRange的一些用法收集
- Lucene中的 Query对象
- Lucene的查询语句用法
- Nhibernate中CreateSQLQuery用法实例
- query_posts函数用法:指定标签过滤或显示内容
- ASP.NET中Get和Post的用法 Request.QueryString,Request.Form,Request.Params的区别 [转]
- hibernate 的createSQLQuery的几种用法
- 分享js document.querySelector以及document.querySelectorAll选择器用法
- Lucene 查询(Query)子类
- 【Lucene4.8教程之六】QueryParser与Query子类:如何生成Query对象
- lucene2.4测试_文本文件索引
- lucene-查询query->WildcardQuery使用通配符搜索