首先说明为什么现在还要用Lucene,用ES他不香吗!因为没有服务器资源,所以无法单独部署ES服务,只能先使用Lucene顶着先,因为ES是基于Lucene的,且是分布式的,后期有服务器后还是要换为ES,现在就让我们先用案例集成Lucene吧。
Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。
1.引入依赖
<!--核心包-->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-core</artifactId>
<version>7.6.0</version>
</dependency>
<!--对分词索引查询解析-->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-queryparser</artifactId>
<version>7.6.0</version>
</dependency>
<!--一般分词器,适用于英文分词-->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
<version>7.6.0</version>
</dependency>
<!--检索关键字高亮显示 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-highlighter</artifactId>
<version>7.6.0</version>
</dependency>
<!-- smartcn中文分词器 -->
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-smartcn</artifactId>
<version>7.6.0</version>
</dependency>
2.配置LuceneConfig
@Configuration
public class LuceneConfig {
@Autowired
private UEditorConfig uEditorConfig;
/**
* lucene索引,存放位置
*/
private static final String LUCENEINDEXPATH="/lucene";
/**
* 创建一个 Analyzer 实例
*
* @return
*/
//中文智能分词
// @Bean
// public Analyzer analyzer() {
// return new SmartChineseAnalyzer(false);
// }
//类似于模糊搜索
@Bean//(name = "analyzer")
public Analyzer analyzer() {
return new StandardAnalyzer();
}
// @Bean(name = "smartAnalyzer")
// public Analyzer smartAnalyzer() {
// return new SmartChine