Lucene索引中的文档和字段实例重用

香卡

我正在尝试重用Document和Field实例以提高性能(我已经尝试对文件中的100万行执行此操作,而没有重用耗时20秒的实例)。

但是,当我尝试这样做时,它花费了太多时间,并且一直在运行。

有人可以面对同样的问题吗?

这是尝试重用实例之前的现有代码,对于我正在创建新文档和字段的文件中的每一行。

FileInputStream fis;
                try {

                    fis = new FileInputStream(file);
                    String filePath= file.getPath();
                    BufferedReader br = new BufferedReader(
                            new InputStreamReader(fis, StandardCharsets.UTF_8));

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

                        String[] lineTokens = line.split("\\|");
                        Document doc = new Document();
                        Field field1 = new TextField("field1", field1Value, Field.Store.YES);
                        doc.add(field1);
                        Field field2 = new StringField("field2", field2Value,Field.Store.YES);
                        doc.add(field2);
                        writer.addDocument(doc);
                    }
                    br.close();
                } catch (FileNotFoundException fnfe) {

                } 

变更后

FileInputStream fis;
                try {

                    fis = new FileInputStream(file);
                    String filePath= file.getPath();
                    BufferedReader br = new BufferedReader(
                            new InputStreamReader(fis, StandardCharsets.UTF_8));

                    String line = null;
                    Document doc = new Document();
                    Field field1 = new TextField("field1", field1Value, Field.Store.YES);
                    Field field2 = new StringField("field2", field2Value,Field.Store.YES);
                    while ((line = br.readLine()) != null) {

                        //String[] lineTokens = line.split("\\|");

                        field1.setStringValue("field1Value");
                        doc.add(field1);

                        field2.setStringValue("field2Value");
                        doc.add(field2);
                        writer.addDocument(doc);
                    }
                    br.close();
                } catch (FileNotFoundException fnfe) {

                } 
毫微微管

您无需在每次迭代时都将字段添加到文档中。一次添加字段后,只需更改字段值,然后将更改后的文档写入索引,如下所示:

Document doc = new Document();
Field field1 = new TextField("field1", field1Value, Field.Store.YES);
doc.add(field1);
Field field2 = new StringField("field2", field2Value,Field.Store.YES);
doc.add(field2);
while ((line = br.readLine()) != null) {
    field1.setStringValue("field1Value");
    field2.setStringValue("field2Value");

    writer.addDocument(doc);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何索引和搜索Lucene.NET中的Datetime字段?

来自分类Dev

在Lucene中向文档添加不可索引字段-不推荐使用Field.Index

来自分类Dev

自动在Lucene中索引文档

来自分类Dev

lucene.net索引中的重复文档

来自分类Dev

自动在Lucene中索引文档

来自分类Dev

Lucene.NET-检查索引中是否存在文档

来自分类Dev

如何使用Term或QueryParser从Lucene索引中删除文档

来自分类Dev

Appengine搜索文档中未索引的字段?

来自分类Dev

Lucene-检索文档中多值字段的所有值

来自分类Dev

如何根据lucene中的字段对文档进行排序?

来自分类Dev

Lucene-检索文档中多值字段的所有值

来自分类Dev

Lucene .NET中字段索引枚举的用途是什么

来自分类Dev

如何在 Lucene 7.4 中索引短字段

来自分类Dev

Lucene in Action 一书和字段索引分析参数 API 在 6.x 中的相关性如何

来自分类Dev

Lucene索引字段不可搜索

来自分类Dev

在Lucene中搜索索引文档时如何获取唯一文档

来自分类Dev

在lucene中索引整数

来自分类Dev

Elasticsearch和Lucene文档限制

来自分类Dev

结合多个Lucene索引和结构相同的文档,以进行排序查询

来自分类Dev

MongoDB:重命名集合中的字段(文档和子文档)

来自分类Dev

在同一索引中合并不同文档的字段

来自分类Dev

Lucene中大型#文档的索引性能

来自分类Dev

如何更新 lucene.net 索引中的字段而不是更新所有索引的示例

来自分类Dev

与附件文档中的索引字段同名的字段如何避免范围索引错误?

来自分类Dev

如何使Lucene.NET将2个Sitecore字段合并到1个索引字段中?

来自分类Dev

使用Lucene查询相关文档字段

来自分类Dev

Lucene可以在索引中存储超过100Gb原始文档吗?

来自分类Dev

重用目录索引,而不是在lucene.net上重建

来自分类Dev

在Lucene文档中添加多值字符串字段,逗号重要吗?

Related 相关文章

  1. 1

    如何索引和搜索Lucene.NET中的Datetime字段?

  2. 2

    在Lucene中向文档添加不可索引字段-不推荐使用Field.Index

  3. 3

    自动在Lucene中索引文档

  4. 4

    lucene.net索引中的重复文档

  5. 5

    自动在Lucene中索引文档

  6. 6

    Lucene.NET-检查索引中是否存在文档

  7. 7

    如何使用Term或QueryParser从Lucene索引中删除文档

  8. 8

    Appengine搜索文档中未索引的字段?

  9. 9

    Lucene-检索文档中多值字段的所有值

  10. 10

    如何根据lucene中的字段对文档进行排序?

  11. 11

    Lucene-检索文档中多值字段的所有值

  12. 12

    Lucene .NET中字段索引枚举的用途是什么

  13. 13

    如何在 Lucene 7.4 中索引短字段

  14. 14

    Lucene in Action 一书和字段索引分析参数 API 在 6.x 中的相关性如何

  15. 15

    Lucene索引字段不可搜索

  16. 16

    在Lucene中搜索索引文档时如何获取唯一文档

  17. 17

    在lucene中索引整数

  18. 18

    Elasticsearch和Lucene文档限制

  19. 19

    结合多个Lucene索引和结构相同的文档,以进行排序查询

  20. 20

    MongoDB:重命名集合中的字段(文档和子文档)

  21. 21

    在同一索引中合并不同文档的字段

  22. 22

    Lucene中大型#文档的索引性能

  23. 23

    如何更新 lucene.net 索引中的字段而不是更新所有索引的示例

  24. 24

    与附件文档中的索引字段同名的字段如何避免范围索引错误?

  25. 25

    如何使Lucene.NET将2个Sitecore字段合并到1个索引字段中?

  26. 26

    使用Lucene查询相关文档字段

  27. 27

    Lucene可以在索引中存储超过100Gb原始文档吗?

  28. 28

    重用目录索引,而不是在lucene.net上重建

  29. 29

    在Lucene文档中添加多值字符串字段,逗号重要吗?

热门标签

归档