java - 使用 lucene 重新索引对象

标签 java lucene

我还有一个与内存中的对象相关的问题。我按如下方式初始化模型:

model.init("" +
        "<root>" +
        "  <objA nb='5' attrA1='string(val1)' attrA2='int(0)'>" +
        "    <objB nb='8' attrB1='string(val2)' attrB2='int(102)' />" +
        "    <objQ nb='4' attrD3='int(250)' attrD6='string(ok)'  />" +
        "  </objA>" +
        "  <objC nb='1' attrC1='int(1)'/>" +
        "  <objD nb='1' attrD1='string(valx)'/>" +
        "     <objZ nb='8' attrB1='string(val2)' attrB2='int(102)' />" +
        "  <objR nb='4' attrR1='string(val3)' />" +
        "  <mark nb='2' attrR9='string(valeur)'>" +
        "    <ttt name='string(qsa)'>" +
        "      <aaa></aaa>" +
        "    </ttt>" +
        "  </mark>" +
        "</root>");
    rootType = model.getRootType();

然后我用所有元素的属性来索引它们;之后我修改其中一些(我更改它们的属性值,我删除一些对象,我创建一些新闻)。如何检测我修改了对象并用lucene重新索引它?我将非常感谢您的帮助。

最佳答案

How to detect that I modified the object

这通常是通过一个“已修改”标志来完成的,所有 setter 将其设置为 true,并在索引时将其设置为 false

and re-index it with lucene?

IIRC,Lucene无法修改索引文档,因此您必须删除并重新添加它们。

关于java - 使用 lucene 重新索引对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275658/

相关文章:

java - Android 未处理的异常

java - 为什么javax.servlet-api不包含jSTL?

java - 带有 Vaadin 的嵌套表单/显示集合的内容

solr - 如何手动合并solr中的段?

elasticsearch - 每天约200G日志的Elasticsearch集群设计

search - 我如何对solr/lucene分数进行归一化?

lucene - lucene中的精确率和召回率

java - 将数据插入 map 列表在 Java 中花费太多时间

java - 从键值(环境)传递到关系(实体)时,Xodus 会生成一个巨大的文件

java - BooleanQuery.combine 在 Lucene 中使用 BooleanQuery.Builder