本文主要是研究了全文检索技术的基本原理以及Lucene的架构和工作原理,并介绍了基于Lucene的实时全文检索引擎的设计实现过程。并提供了一个基于Web的简单实现。最后通过实验的方式,对实现的实时全文检索引擎的性能做了基础测试。实验结果表示,Eserach的性能表现出色,足以满足一般应用的需求。不可否认的是,Esearch依然存在某些问题没有解决,例如针对索引的删除操作,合并策略的自定义等。同时对Esearch的性能测试不够充分。没有对数据量达到一定规模后的系统性能和针对不同查询类型进行响应时间的测试。这些都是依然值得深入研究和改进的地方。
毕业设计-基于Lucene的实时全文检索系统├── esearch
│ ├── esearch-core
│ │ ├── esearch-core.iml
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── cn
│ │ └── hbu
│ │ └── cs
│ │ └── esearch
│ │ ├── cache
│ │ │ ├── AbstractReaderCache.java
│ │ │ ├── DefaultReaderCache.java
│ │ │ ├── NoopReaderCache.java
│ │ │ ├── SimpleReaderCache.java
│ │ │ └── SmartReaderCache.java
│ │ ├── consumer
│ │ │ ├── AsyncDataConsumer.java
│ │ │ ├── AsyncEsearchStoreConsumer.java
│ │ │ ├── DataConsumer.java
│ │ │ ├── DelegateIndexDataConsumer.java
│ │ │ ├── EsearchStoreConsumer.java
│ │ │ └── LifeCycleCotrolledDataConsumer.java
│ │ ├── core
│ │ │ ├── Esearch.java
│ │ │ ├── EsearchConfig.java
│ │ │ ├── EsearchContext.java
│ │ │ ├── EsearchException.java
│ │ │ ├── EsearchExecutors.java
│ │ │ ├── EsearchHealth.java
│ │ │ ├── EsearchMergePolicy.java
│ │ │ ├── EsearchMultiReader.java
│ │ │ ├── EsearchReaderContext.java
│ │ │ ├── EsearchSegmentReader.java
│ │ │ ├── EsearchSystem.java
│ │ │ └── EsearchThreadPoolExecutor.java
│ │ ├── document
│ │ │ ├── AbstractEsearchIndexable.java
│ │ │ ├── AbstractInterpreter.java
│ │ │ ├── DataDoc.java
│ │ │ ├── DirectoryManager.java
│ │ │ ├── DocIDMapper.java
│ │ │ ├── DocIDMapperFactory.java
│ │ │ ├── DocIDMapperImpl.java
│ │ │ ├── EsearchIndexable.java
│ │ │ ├── FileInterpreter.java
│ │ │ ├── Interpreter.java
│ │ │ ├── JsonInterpreter.java
│ │ │ ├── TikaInterpreter.java
│ │ │ ├── UIDDocIdSet.java
│ │ │ └── UIDFilter.java
│ │ ├── index
│ │ │ ├── AbstractIndexReaderDecorator.java
│ │ │ ├── BaseSearchIndex.java
│ │ │ ├── BatchedIndexDataLoader.java
│ │ │ ├── DefaultDirectoryManager.java
│ │ │ ├── DefaultDocIDMapperFactory.java
│ │ │ ├── DefaultIndexReaderDecorator.java
│ │ │ ├── DefaultIndexingEventListener.java
│ │ │ ├── DefaultOptimizeScheduler.java
│ │ │ ├── DefaultRAMDiskIndexFactory.java
│ │ │ ├── DefaultRAMIndexFactory.java
│ │ │ ├── DiskIndexSnapshot.java
│ │ │ ├── DiskLuceneIndexDataLoader.java
│ │ │ ├── DiskSearchIndex.java
│ │ │ ├── IndexReaderDecorator.java
│ │ │ ├── IndexReaderDispenser.java
│ │ │ ├── IndexReaderFactory.java
│ │ │ ├── IndexSignature.java
│ │ │ ├── IndexUpdatedEvent.java
│ │ │ ├── IndexingEventListener.java
│ │ │ ├── IndexingThread.java
│ │ │ ├── LuceneIndexDataLoader.java
│ │ │ ├── OptimizeScheduler.java
│ │ │ ├── RAMIndexFactory.java
│ │ │ ├── RAMLuceneIndexDataLoader.java
│ │ │ ├── RAMSearchIndex.java
│ │ │ ├── ReaderCacheFactory.java
│ │ │ ├── RealtimeIndexDataLoader.java
│ │ │ ├── SearchIndexManager.java
│ │ │ └── ZoieIndexDeletionPolicy.java
│ │ ├── mbean
│ │ │ ├── DataProviderAdmin.java
│ │ │ ├── DataProviderAdminMBean.java
│ │ │ ├── EsearchAdminMBean.java
│ │ │ ├── EsearchIndexingStatusAdmin.java
│ │ │ ├── EsearchIndexingStatusAdminMBean.java
│ │ │ ├── EsearchSystemAdmin.java
│ │ │ ├── EsearchSystemAdminMBean.java
│ │ │ ├── OptimizeSchedulerAdmin.java
│ │ │ └── OptimizeSchedulerAdminMBean.java
│ │ ├── provider
│ │ │ ├── DataProvider.java
│ │ │ ├── FileDataProvider.java
│ │ │ ├── MemoryStreamDataProvider.java
│ │ │ └── StreamDataProvider.java
│ │ ├── store
│ │ │ ├── AbstractEsearchStore.java
│ │ │ ├── EsearchStore.java
│ │ │ ├── LuceneStore.java
│ │ │ └── StoreSerializer.java
│ │ └── util
│ │ ├── ArrayDocIdSet.java
│ │ ├── ChannelUtil.java
│ │ ├── FileUtil.java
│ │ ├── IndexUtil.java
│ │ ├── IntSetAccelerator.java
│ │ ├── LongSetAccelerator.java
│ │ ├── MemoryManager.java
│ │ └── PriorityQueue.java
│ ├── esearch-parent
│ │ ├── esearch-parent.iml
│ │ └── pom.xml
│ ├── esearch-perf
│ │ ├── esearch-perf.iml
│ │ └── pom.xml
│ ├── esearch-real
│ │ ├── esearch-real.iml
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hbu
│ │ │ └── cs
│ │ │ └── esearch
│ │ │ ├── controller
│ │ │ │ └── EsearchRestfulController.java
│ │ │ ├── model
│ │ │ │ ├── IndexRequest.java
│ │ │ │ ├── SearchHit.java
│ │ │ │ ├── SearchRequest.java
│ │ │ │ └── SearchResult.java
│ │ │ └── service
│ │ │ ├── IndexService.java
│ │ │ ├── SearchService.java
│ │ │ └── impl
│ │ │ └── EsearchSearchServiceImpl.java
│ │ ├── resources
│ │ │ ├── logback.xml
│ │ │ └── spring
│ │ │ ├── spring-applicationContext.xml
│ │ │ └── spring-dispatcher-servlet.xml
│ │ └── webapp
│ │ ├── WEB-INF
│ │ │ ├── conf
│ │ │ │ └── esearch.properties
│ │ │ └── web.xml
│ │ ├── pages
│ │ │ └── index.jsp
│ │ └── resources
│ │ ├── favicon.ico
│ │ ├── images
│ │ │ ├── esearch-logo.png
│ │ │ └── logo.png
│ │ ├── scripts
│ │ │ ├── search.js
│ │ │ └── utils.js
│ │ └── styles
│ │ └── index.css
│ ├── esearch-web
│ │ ├── esearch-web.iml
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── java
│ │ │ └── cn
│ │ │ └── hbu
│ │ │ └── cs
│ │ │ └── esearch
│ │ │ ├── controller
│ │ │ │ ├── EsearchController.java
│ │ │ │ └── EsearchRestfulController.java
│ │ │ ├── model
│ │ │ │ ├── SearchHit.java
│ │ │ │ ├── SearchRequest.java
│ │ │ │ └── SearchResult.java
│ │ │ └── service
│ │ │ ├── SearchService.java
│ │ │ └── impl
│ │ │ └── EsearchSearchServiceImpl.java
│ │ ├── resources
│ │ │ ├── api
│ │ │ │ ├── format.json
│ │ │ │ ├── index.json
│ │ │ │ ├── info.json
│ │ │ │ └── search.json
│ │ │ ├── logback.xml
│ │ │ └── spring
│ │ │ ├── spring-applicationContext.xml
│ │ │ └── spring-dispatcher-servlet.xml
│ │ └── webapp
│ │ ├── WEB-INF
│ │ │ ├── conf
│ │ │ │ └── esearch.properties
│ │ │ └── web.xml
│ │ ├── pages
│ │ │ ├── admin.jsp
│ │ │ ├── api.jsp
│ │ │ ├── how.jsp
│ │ │ └── index.jsp
│ │ └── resources
│ │ ├── favicon.ico
│ │ ├── images
│ │ │ ├── esearch-logo.png
│ │ │ └── logo.png
│ │ ├── scripts
│ │ │ ├── search.js
│ │ │ └── utils.js
│ │ └── styles
│ │ └── index.css
│ ├── esearch.iml
│ ├── pom.xml
│ └── src
│ └── main
│ └── webapp
│ └── WEB-INF
│ └── web.xml
├── image
│ ├── images
│ │ ├── data-provider-arch.png
│ │ ├── image_4.png
│ │ ├── image_6.png
│ │ ├── image_8.png
│ │ ├── index-arch.png
│ │ ├── inverted-index.png
│ │ ├── logo.png
│ │ ├── lucene-arch-blue.png
│ │ ├── lucene-course-normal.png
│ │ ├── lucene-course.png
│ │ ├── lucene-index-arch.png
│ │ ├── lucene-score.png
│ │ ├── lucene-search-score-uml.jpg
│ │ ├── lucene-source-arch.png
│ │ ├── mvc.png
│ │ ├── p-c-arch.png
│ │ ├── p-c.png
│ │ ├── postinglist.png
│ │ ├── query-tree-after-process.png
│ │ ├── query-tree.png
│ │ ├── realtime.png
│ │ ├── realtime01.png
│ │ ├── realtime02.png
│ │ ├── realtime03.png
│ │ ├── search-arch.png
│ │ ├── search.png
│ │ ├── timeline.png
│ │ └── vsm.png
│ └── visio
│ ├── data-flow.vsdx
│ ├── data-provider-arch.vsdx
│ ├── index-arch.vsdx
│ ├── inverted-index.vsdx
│ ├── lucene-arch.vsdx
│ ├── lucene-course.vsdx
│ ├── lucene-index-arch.vsdx
│ ├── lucene-source-arch.vsdx
│ ├── mvc.vsdx
│ ├── p-c-arch.vsdx
│ ├── postinglist.vsdx
│ ├── query-tree.vsdx
│ ├── realtime.vsdx
│ ├── realtime01.vsdx
│ ├── realtime02.vsdx
│ ├── realtime03.vsdx
│ ├── search-arch.vsdx
│ ├── timeline.vsdx
│ └── vsm.vsdx
└── 毕业论文.doc
72 directories, 198 files
评论