「java索引文件」java字符串的索引

博主:adminadmin 2022-11-25 12:11:08 55

本篇文章给大家谈谈java索引文件,以及java字符串的索引对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java怎么给文本建立索引文件? 在线等!!!!

您好,提问者:

    1、首先要明白索引的概念,我举个例子,可能不符合您的需求,但是思路最重要!

例如:1.txt存的是要提取2.txt的行数,那么1.txt我存入1 2 3,取2.txt就是提取1,2,3行的内容。

//以下程序我没运行,只是手写,如有误,请自行修改。

import java.io.*;

public class FileSuoYinDemo{

    public static void main(String[] args)throws Exception{

        //索引文件

        String[] arr = getSuoYin("D:\\1.txt");

        //根据索引搜索文件

        String str = getReaderSuoYin(arr);

        //输出内容

        System.out.println(str);

    }

    //读取索引文件内容,格式:1 2 3 空格隔开。

    private static String[] getSuoYin(String fileSuoYin){

        String[] arr = null;

        File file = new File(fileSuoYin);

        if(!file.exists()){

            throw new RuntimeException("文件不存在!");

        }else{

            //这里我就用字符流了。

            FileReader fr = new FileReader(file);

            arr = new BufferedReader(fr).readLine().split(" +");

        }

        return arr;

    }

    //根据索引读取文件

    private static String getReaderSuoYin(String[] arr)throws Exception{

        //这里我就不判断文件是否存在了

        BufferedReader br = new BufferedReader("D:\\2.txt");

        int num = 1;

        StringBuilder sb = new StringBuilder();

        String line = "";

        while((line=br.readLine())!=null){

            for(int i = 0; i  arr.length; i++){

                if(num.equals(arr[i])){

                    sb.append(line);

                }

            }

        }

        return sb;

    }

}

在用Java实现文件索引及检索功能时涉及到的Java基础知识有哪些?

1. java 文件操作,或者说java IO 的API

2. java 基本语法

3. java 集合类的应用,文件索引什么的应该会用到数据结构吧

如何用java语言建立多个索引?

使用jdbc技术连接数据库

使用语句对象statement的execute方法可以执行对索引的操作

例如代码如下

public class IndexFiles {

//使用方法:: IndexFiles [索引输出目录] [索引的文件列表] ...

public static void main(String[] args) throws Exception {

String indexPath = args[0];

IndexWriter writer;

//用指定的语言分析器构造一个新的写索引器(第3个参数表示是否为追加索引)

writer = new IndexWriter(indexPath, new SimpleAnalyzer(), false);

for (int i=1; iargs.length; i++) {

System.out.println("Indexing file " + args[i]);

InputStream is = new FileInputStream(args[i]);

//构造包含2个字段Field的Document对象

//一个是路径path字段,不索引,只存储

//一个是内容body字段,进行全文索引,并存储

Document doc = new Document();

doc.add(Field.UnIndexed("path", args[i]));

doc.add(Field.Text("body", (Reader) new InputStreamReader(is)));

//将文档写入索引

writer.addDocument(doc);

is.close();

};

//关闭写索引器

writer.close();

}

}

public class Search {

public static void main(String[] args) throws Exception {

String indexPath = args[0], queryString = args[1];

//指向索引目录的搜索器

Searcher searcher = new IndexSearcher(indexPath);

//查询解析器:使用和索引同样的语言分析器

Query query = QueryParser.parse(queryString, "body",

new SimpleAnalyzer());

//搜索结果使用Hits存储

Hits hits = searcher.search(query);

//通过hits可以访问到相应字段的数据和查询的匹配度

for (int i=0; ihits.length(); i++) {

System.out.println(hits.doc(i).get("path") + "; Score: " +

hits.score(i));

};

}

}在整个检索过程中,语言分析器,查询分析器,甚至搜索器(Searcher)都是提供了抽象的接口,可以根据需要进行定制。

分 析:

索引过程中可以看到:

语言分析器提供了抽象的接口,因此语言分析(Analyser)是可以定制的,虽然lucene缺省提供了2个比较通用的分析器SimpleAnalyser和StandardAnalyser,这2个分析器缺省都不支持中文,所以要加入对中文语言的切分规则,需要修改这2个分析器。

Lucene并没有规定数据源的格式,而只提供了一个通用的结构(Document对象)来接受索引的输入,因此输入的数据源可以是:数据库,WORD文档,PDF文档,HTML文档……只要能够设计相应的解析转换器将数据源构造成成Docuement对象即可进行索引。

对于大批量的数据索引,还可以通过调整IndexerWrite的文件合并频率属性(mergeFactor)来提高批量索引的效率。

总 结:

搜索结果返回的是Hits对象,可以通过它再访问Document==Field中的内容。假设根据body字段进行全文检索,可以将查询结果的path字段和相应查询的匹配度(score)打印出来,

java本地文件索引

可以使用递归调用的方法逐个检索你的文件,直到文件内成空。

Java编程中 什么是索引,有什么作用?

JAVA索引是为了解决数据库的读写性能瓶颈问题设定的,JAVA为数据库的表格创建了一份虚拟表全部或部分的副本存放于内存或硬盘文件等以加快数据读写,详细可参考lucene引擎

关于java索引文件和java字符串的索引的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。