这可能是一个相当丰富的问题,但我的问题是我有一个用于实时搜索的Spring servlet。我需要去掉Lucene分析器,以便它离线运行,并在每次遇到查询时由servlet调用,而不是将分析器放在servlet中。但是,我不知道如何做到这一点,也不知道如何从servlet调用分析器服务。有谁能给我指个方向吗?
目前,我有这样的想法:
RAMDirectory ramDirectory = new RAMDirectory();
StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_31);
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_31, analyzer);
IndexWriter indexWriter = new IndexWriter(ramDirectory, config);
Document document = new Document();
// TEST DATA
document.add(new Field("firstName", "John", Field.Store.YES, Field.Index.ANALYZED));
document.add(new Field("occupation", "Engineer", Field.Store.YES, Field.Index.ANALYZED));
document.add(new Field("firstName", "Mary", Field.Store.YES, Field.Index.ANALYZED));
document.add(new Field("occupation", "Field Engineer", Field.Store.YES, Field.Index.ANALYZED));
document.add(new Field("firstName", "Jamie", Field.Store.YES, Field.Index.ANALYZED));
document.add(new Field("occupation", "Primary teacher", Field.Store.YES, Field.Index.ANALYZED));
// END TEST DATA
indexWriter.addDocument(document);
indexWriter.optimize();
indexWriter.close();
IndexSearcher indexSearcher = new IndexSearcher(ramDirectory);
String[] fields = {"firstName", "occupation"};
MultiFieldQueryParser parser = new MultiFieldQueryParser(null, fields, analyzer);
Query query = parser.parse(searchQuery);
// Parsing of results here谢谢。
发布于 2011-04-12 21:34:39
为什么你觉得你现在的设计在性能方面很差?你到底遇到了什么问题?
我相信您正在寻找的是某种形式的进程间通信。出现在脑海中的两个选项是:
Lucene
https://stackoverflow.com/questions/5631596
复制相似问题