zoukankan      html  css  js  c++  java
  • Lucene初步搜索

    Lucene在创立索引后,要进行搜索查询

    搜索大概需要5部,

    1,读取索引。

    2,查询索引。

    3,匹配数据。

    4,封装匹配结果。

    5,获取需要的值。

    语言表达能力不好,大概就是分着几部吧。

    /**
         * 搜索
         */
        public void searcher(){
            //1,创建Directory
            Directory directory = null;
            IndexReader reader = null;
            try {
                directory = FSDirectory.open(Paths.get("D://lucene//index"));
                //2,创建IndexReader
                 reader = DirectoryReader.open(directory);
                //3,根据IndexReader创建IndexSearcher
                 IndexSearcher searcher = new IndexSearcher(reader);
                //4,创建搜索的query
                 QueryParser parser = new QueryParser("content",new StandardAnalyzer());
                 Query query = parser.parse("SELECT");
                //5,根据search搜索并返回TopDocs
                 TopDocs tds = searcher.search(query, 10);
                //6,根据TopDocs获取ScoreDoc对象
                 ScoreDoc[] sds = tds.scoreDocs;
                 for(ScoreDoc sd:sds){
                    //7,根据search和ScordDoc对象获取具体的Document对象
                     Document d = searcher.doc(sd.doc);
                    //8,根据Document对象获取需要的值
                     System.out.println(d.get("filename")+"["+d.get("path")+"]");
                 }
                
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ParseException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                try {
                    reader.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            
        }

    搜索的对象“SELECT”,执行,查询结果如下

  • 相关阅读:
    vue中引用font-awesome
    创建VUE项目
    Core项目添加EF
    DBHelper,之前常用的代码,保存起来。
    appium+python的APP自动化(2)
    appium+python的APP自动化(1)
    单例模式
    双重检测机制解决缓存穿透问题
    mysql数据库
    java的三大特性----封装、集成、多态
  • 原文地址:https://www.cnblogs.com/invban/p/6145998.html
Copyright © 2011-2022 走看看