gpt4 book ai didi

java - lucene 使用通配符搜索明显慢

转载 作者:太空宇宙 更新时间:2023-11-04 08:03:23 25 4
gpt4 key购买 nike

我有一个包含 1000 个文件的列表(每年增长两倍),其中仅包含文本,每个文件大小约为 8Mb,我正在尝试查找给定(通配符)表达式的文件名。

例如,所有文件都包含此类数据

COD1004129641208240002709991455671866 4IT / HUF 4400QQQUF 3300QQQUF

我的搜索可能是:“*9991455671866”,它与上面的行匹配。

问题是(也许我的期望太高)需要一分钟多一点的时间才能返回结果。

我的文档索引如下所示:

private Document getDocument(File file) throws IOException
{
FileReader reader = new FileReader(file);
Document doc = new Document();
doc.add(new Field(IndexProperties.FIELD_FILENAME, file.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
doc.add(new Field(IndexProperties.FIELD_CONTENT, reader));

return doc;
}

分析器

        Directory fsDir = FSDirectory.open(new File(indexFolder));
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_36);

// build the writer
IndexWriterConfig indexWriter = new IndexWriterConfig(Version.LUCENE_36, analyzer);
IndexWriter writer = new IndexWriter(fsDir, indexWriter);

通过通配符搜索是:

public List<String> findFilenameByContent(String wildCardContent, String INDEX_FOLDER, String TICKETS_FOLDER) throws Exception
{
long start = System.currentTimeMillis();
Term term = new Term(IndexProperties.FIELD_CONTENT, wildCardContent); //eg *9991455671866
Query query = new WildcardQuery(term);

//loop through docs
Directory fsDir = FSDirectory.open(new File(INDEX_FOLDER));
IndexSearcher searcher = new IndexSearcher(IndexReader.open(fsDir));
ScoreDoc[] queryResults = searcher.search(query, 10).scoreDocs;
List<String> strs = new ArrayList<String>();

for (ScoreDoc scoreDoc : queryResults)
{
Document doc = searcher.doc(scoreDoc.doc);
strs.add(doc.get(IndexProperties.FIELD_FILENAME));
}

searcher.close();
long end = System.currentTimeMillis();
System.out.println("TOTAL SEARCH TIME: "+(end-start)/1000.0+ "secs");
return strs;
}

最佳答案

我没有发现您的代码有任何问题。如果您只需要搜索,请尝试:

IndexReader.open(fsDir,true);

它可能会缩短您的搜索时间。

This suggestions may help.

关于java - lucene 使用通配符搜索明显慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12481661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com