Document doc2 = new Document();
Document doc3 = new Document();
Field field1 = new Field("postTitle","Java語言",Field.Store.YES,Field.Index.TOKENIZED);
Field field2 = new Field("postTitle","言語",Field.Store.YES,Field.Index.TOKENIZED);
Field field3 = new Field("postTitle","Luene開發詳解",Field.Store.YES,Field.Index.TOKENIZED);
doc1.add(field1);
doc2.add(field2);
doc3.add(field3);
IndexWriter writer = new IndexWriter(STORE_PATH, new StandardAnalyzer(), true);
writer.addDocument(doc1);
writer.addDocument(doc2);
writer.addDocument(doc3);
writer.close();
PhraseQuery query = new PhraseQuery();
query.add(new Term("postTitle","語"));
query.add(new Term("postTitle","言"));
IndexSearcher searcher = new IndexSearcher(STORE_PATH);
Hits hits = searcher.search(query);
System.out.println("phraseQuery demo------");
System.out.println("hits.length()==" + hits.length());
for(int i = 0;i<hits.length();i++){
System.out.println(hits.doc(i));
}
hits.length()==1
Document<stored/uncompressed,indexed,tokenized<postTitle:Java語言>>
Document doc2 = new Document();
Document doc3 = new Document();
Field field1 = new Field("postTitle","中國人是偉大的",Field.Store.YES,Field.Index.TOKENIZED);
Field field2 = new Field("postTitle","中華名族是偉大的名族",Field.Store.YES,Field.Index.TOKENIZED);
Field field3 = new Field("postTitle","黨中央",Field.Store.YES,Field.Index.TOKENIZED);
doc1.add(field1);
doc2.add(field2);
doc3.add(field3);
IndexWriter writer = new IndexWriter(STORE_PATH, new StandardAnalyzer(), true);
writer.addDocument(doc1);
writer.addDocument(doc2);
writer.addDocument(doc3);
writer.close();
MultiPhraseQuery query = new MultiPhraseQuery();
//加入短語前綴
query.add(new Term("postTitle","中"));
//加入短語後綴
query.add(new Term[]{new Term("postTitle","國"),new Term("postTitle","華"),new Term("postTitle","央")});
IndexSearcher searcher = new IndexSearcher(STORE_PATH);
Hits hits = searcher.search(query);
System.out.println("multiPhraseQuery demo------");
System.out.println("hits.length()==" + hits.length());
for(int i = 0;i<hits.length();i++){
System.out.println(hits.doc(i));
}
hits.length()==3
Document<stored/uncompressed,indexed,tokenized<postTitle:黨中央>>
Document<stored/uncompressed,indexed,tokenized<postTitle:中國人是偉大的>>
Document<stored/uncompressed,indexed,tokenized<postTitle:中華名族是偉大的名族>>
Document doc2 = new Document();
Document doc3 = new Document();
Field field1 = new Field("postTitle","Java語言簡介",Field.Store.YES,Field.Index.TOKENIZED);
Field field2 = new Field("postTitle","JavaEE各種框架",Field.Store.YES,Field.Index.TOKENIZED);
Field field3 = new Field("postTitle","Luene開發詳解",Field.Store.YES,Field.Index.TOKENIZED);
doc1.add(field1);
doc2.add(field2);
doc3.add(field3);
IndexWriter writer = new IndexWriter(STORE_PATH, new StandardAnalyzer(), true);
writer.addDocument(doc1);
writer.addDocument(doc2);
writer.addDocument(doc3);
writer.close();
Term term = new Term("postTitle","java");
Query query = new PrefixQuery(term);
IndexSearcher searcher = new IndexSearcher(STORE_PATH);
Hits hits = searcher.search(query);
System.out.println("PrefixQuery demo------");
System.out.println("hits.length()==" + hits.length());
for(int i = 0;i<hits.length();i++){
System.out.println(hits.doc(i));
}
hits.length()==2
Document<stored/uncompressed,indexed,tokenized<postTitle:Java語言簡介>>
Document<stored/uncompressed,indexed,tokenized<postTitle:JavaEE各種框架>>