lucene maven配置
https://blog.youkuaiyun.com/slslslyxz/article/details/105446139
package org.zjs.lucene;
import org.apache.lucene.document.Field;
import java.io.File;
import java.io.FileFilter;
import java.io.FileReader;
import java.io.IOException;
import java.nio.file.Paths;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.LongPoint;
import org.apache.lucene.document.NumericDocValuesField;
import org.apache.lucene.document.StoredField;
import org.apache.lucene.document.StringField;
import org.apache.lucene.document.TextField;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.queryparser.classic.ParseException;
import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.util.Version;
import org.wltea.analyzer.lucene.IKAnalyzer;
/**
* Hello world!
*
*/
public class App
{
public static void main( String[] args ) throws IOException, ParseException
{
//1 创建文档对象
Document document = new Document();
// 创建并添加字段信息。参数:字段的名称、字段的值、是否存储,这里选Store.YES代表存储到文档列表。Store.NO代表不存储
//由于 6x版本以后 IntField LongField都没了
document.add(new LongPoint("id", 1));//可以用来范围搜索
document.add(new NumericDocValuesField("id", 1));//可以用来sort排序
document.add(new StoredField("id", 1));//单纯用来获得ID值
document.add(new StringField("tag", "小道消息", Field.Store.YES));
// 这里我们title字段需要用TextField,即创建索引又会被分词。StringField会创建索引,但是不会被分词
document.add(new TextField("title", "谷歌突然宕机三小时", Field.Store.YES));
//2 索引目录类,指定索引在硬盘中的位置
//新版本不是给File对象,需要传一个Path对象
Directory directory = FSDirectory.open(Paths.get("D:\\indexTestDir\\"));
//如果不想存储在硬盘可以使用RAM存储。Directory directory=new RAMDirectory();
//3 创建分词器对象
//标准分词器,并不合适中文分词,因此一般我们会用第三方提供的分词器:(比如 ChineseAnalyzer CollationAnalyzer等等,不过ChineseAnalyzer已经废弃了),这里使用的是IK分词器
Analyzer analyzer = new IKAnalyzer();
//4 索引写出工具的配置对象
IndexWriterConfig conf = new IndexWriterConfig(analyzer);
conf.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
//5 创建索引的写出工具类。参数:索引的目录和配置信息
IndexWriter indexWriter = new IndexWriter(directory, conf);
//6 把文档交给IndexWriter
indexWriter.addDocument(document);
//7 提交
indexWriter.commit();
//8 关闭
indexWriter.close();
// 索引目录对象
Directory directory1 = FSDirectory.open(Paths.get("D:\\indexTestDir\\"));
// 索引读取工具
IndexReader reader = DirectoryReader.open(directory1);
// 索引搜索工具
IndexSearcher searcher = new IndexSearcher(reader);
// 创建查询解析器,两个参数:默认要查询的字段的名称,分词器
QueryParser parser = new QueryParser("title", new IKAnalyzer());
//如果想同时匹配多个
//QueryParser parser = new MultiFieldQueryParser(new String[]{"field1", "field2"}, new IKAnalyzer());
// 创建查询对象
Query query = parser.parse("谷歌");
// 搜索数据,两个参数:查询条件对象要查询的最大结果条数
// 返回的结果是 按照匹配度排名得分前N名的文档信息(包含查询到的总条数信息、所有符合条件的文档的编号信息)。
TopDocs topDocs = searcher.search(query, 10);
// 获取总条数
System.out.println("本次搜索共找到" + topDocs.totalHits + "条数据");
// 获取得分文档对象(ScoreDoc)数组.SocreDoc中包含:文档的编号、文档的得分
ScoreDoc[] scoreDocs = topDocs.scoreDocs;
for (ScoreDoc scoreDoc : scoreDocs) {
// 取出文档编号
int docID = scoreDoc.doc;
// 根据编号去找文档
Document doc = reader.document(docID);
System.out.println("id: " + doc.get("id"));
System.out.println("tag: " + doc.get("tag"));
System.out.println("title: " + doc.get("title"));
// 取出文档得分
System.out.println("得分: " + scoreDoc.score);
}
}
}
<?xml version="1.0"?>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
4.0.0
com.zjs
springcloud
0.0.1-SNAPSHOT
com.zjs
zjs-lucene
0.0.1-SNAPSHOT
zjs-lucene
http://maven.apache.org
UTF-8
8.5.0
org.apache.lucene
lucene-core
${lunece.version}
org.apache.lucene
lucene-queryparser
${lunece.version}
org.apache.lucene
lucene-analyzers-common
${lunece.version}
com.jianggujin
IKAnalyzer-lucene
8.0.0
junit
junit
3.8.1
test
Java中使用Redis
https://blog.youkuaiyun.com/zspppppp/article/details/84847323
https://www.runoob.com/redis/redis-java.html