Lucene 정규 표현 식 검색 RegenxQuery
10382 단어 Lucene
1 /*
2 *
3 */
4
5
6 import java.io.IOException;
7
8 import org.apache.lucene.analysis.standard.StandardAnalyzer;
9 import org.apache.lucene.document.Document;
10 import org.apache.lucene.document.Field;
11 import org.apache.lucene.index.IndexWriter;
12 import org.apache.lucene.index.Term;
13 import org.apache.lucene.search.Hits;
14 import org.apache.lucene.search.IndexSearcher;
15 import org.apache.lucene.search.regex.RegexQuery; // RegexQuery jar lucene-regex-2.9.4.jar
16
17
18
19 public class RegexQueryTest {
20
21 private static final String INDEX_STORE_PATH="d:\\testRegexQuery";
22
23 public static void main(String[] args) throws IOException
24 {
25 //
26 indexwriter(INDEX_STORE_PATH);
27 System.out.println(" !");
28 //
29 search(INDEX_STORE_PATH);
30 System.out.println(" !");
31 }
32
33 //
34 public static void indexwriter(String path) throws IOException
35 {
36 IndexWriter writer=new IndexWriter( path ,new StandardAnalyzer(),true);
37 writer.setUseCompoundFile(false);
38 //
39 Document doc1=new Document();
40 Document doc2=new Document();
41 Document doc3=new Document();
42 Document doc4=new Document();
43 // URL
44 Field f1=new Field("url","http://www.abc/com/profuct?type=1& cate=5",Field.Store.YES,
45 Field.Index.UN_TOKENIZED);
46 Field f2=new Field("url","http://def.com/product?type=5",Field.Store.YES,
47 Field.Index.UN_TOKENIZED);
48 Field f3=new Field("url","http://ghi/product?type=x",Field.Store.YES,
49 Field.Index.UN_TOKENIZED);
50 Field f4=new Field("url","http://xxx.abc/con/profuct?type=1& cate=5",Field.Store.YES,
51 Field.Index.UN_TOKENIZED);
52
53 doc1.add(f1);
54 doc2.add(f2);
55 doc3.add(f3);
56 doc4.add(f4);
57 writer.addDocument(doc1);
58 writer.addDocument(doc2);
59 writer.addDocument(doc3);
60 writer.addDocument(doc4);
61
62 //close
63 writer.close();
64 }
65
66 //
67 public static void search(String path) throws IOException
68 {
69 IndexSearcher searcher=new IndexSearcher(path);
70 //
71 String regex="].*";
72 // Term
73 Term term=new Term("url",regex);
74
75 RegexQuery query=new RegexQuery(term);
76
77 Hits hits=searcher.search(query);
78 for(int i=0;i<hits.length();i++)
79 System.out.println(hits.doc(i));
80 }
81 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Elasticsearch 호출 Lucene 쿼리 인터페이스 원본 분석 6: 접두사 쿼리(Prefix)소개 조회 문법 원본 분석 접두사 조회는 설정에 있어서 단어 조회와 유사하다.접두사 검색은 이러한 문서와 일치할 수 있습니다. 이 문서의 특정 필드는 주어진 접두사로 시작됩니다. 예: 모든 제목 필드가cri로 시작하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.