Apache lucene을 사용하여 파일 내의 문자열을 검색하고 있습니다. 어떤 종류의 구문 분석 lucene 사용합니다. Obama를 검색하면 Presobama로 결과를 반환하지 않지만 # Obama에 대한 결과를 반환합니다. 아무도 그 이유를 말할 수 있습니까? TextField를 사용하고 있습니다.Apache Lucene을 사용하여 검색
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_44);
// Code to create the index
Directory index = new RAMDirectory();
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_44, analyzer);
IndexWriter w = new IndexWriter(index, config);
addDoc(w, finalstep);
w.close();
String querystr = search;
// The \"title\" arg specifies the default field to use when no field is explicitly specified in the query
Query q = new QueryParser(Version.LUCENE_44, "title", analyzer).parse(querystr);
// Searching code
int hitsPerPage = 10;
IndexReader reader = DirectoryReader.open(index);
IndexSearcher searcher = new IndexSearcher(reader);
TopScoreDocCollector collector = TopScoreDocCollector.create(hitsPerPage, true);
searcher.search(q, collector);
ScoreDoc[] hits = collector.topDocs().scoreDocs;