Java 将Lucene 4.6升级到8.0后,面临从不同索引id(存储在不同文件夹中的数据)进行Lucene查询搜索的问题 Lucene从4.6升级到8后,在搜索过程中面临问题 我们正在创建5个不同的文件夹,用于使用不同的索引id进行索引(5个文件夹来自5个不同的表)。在搜索过程中,我们将合并所有这些数据以显示。升级后,我们面临搜索数据方面的问题 当我们对不同索引id的不同字段应用过滤器时,它只搜索一个字段 我在联接查询中看到了不同之处

Java 将Lucene 4.6升级到8.0后,面临从不同索引id(存储在不同文件夹中的数据)进行Lucene查询搜索的问题 Lucene从4.6升级到8后,在搜索过程中面临问题 我们正在创建5个不同的文件夹,用于使用不同的索引id进行索引(5个文件夹来自5个不同的表)。在搜索过程中,我们将合并所有这些数据以显示。升级后,我们面临搜索数据方面的问题 当我们对不同索引id的不同字段应用过滤器时,它只搜索一个字段 我在联接查询中看到了不同之处,java,lucene,Java,Lucene,请向我建议,因为新来的Lucene无法预测 我在Lucene-join.jar中发现了两个版本之间的JoinUtil.createJoinQuery中的更改 两个版本中的查询格式不同 不同版本的查询格式: Lucene 4.6.0: TermsQuery{field=case.id} fromQuery=+(history.attribute:SExtendedAttribute1) +history.modifiedBy:3ff0000000000000 (different param

请向我建议,因为新来的Lucene无法预测

  • 我在Lucene-join.jar中发现了两个版本之间的JoinUtil.createJoinQuery中的更改
  • 两个版本中的查询格式不同
  • 不同版本的查询格式:

    Lucene 4.6.0:
    TermsQuery{field=case.id}
    fromQuery=+(history.attribute:SExtendedAttribute1)  
    +history.modifiedBy:3ff0000000000000  (different parameter) Lucene 8.0.0:
    TermsQuery{field=case.idfromQuery=+(history.attribute:SExtendedAttribute1)  
     +history.modifiedBy:3ff0000000000000}
    
    fromQuery=+(history.attribute:SExtendedAttribute1)  
     +history.modifiedBy:3ff0000000000000  (different parameter is also visible.)
    
    JoinUtil.createJoinQuery(fromField, false, toField, Query, srch, ScoreMode.None);
    

    运行Lucene查询后,它应该为不同的字段应用过滤器(数据在不同的文件夹中)。

    在为我们应用联接查询的唯一列添加此文档值后,此问题得到了解决。新的SortedDocValuesField(字段名,新的BytesRef(值))

    在为我们应用联接查询的唯一列添加此文档值后,此问题得到修复。新的SortedDocValuesField(字段名,新的BytesRef(值))

    实际筛选条件[filter:condition:(&(case.caseType in(Scase))(case.sourceName in(SDEDUPLICATE))(&(history.attribute in(SExtendedAttribute1))(history.modifiedBy eq 3ff0000000000000)))需要根据新的更改更改自定义收集器。实际筛选条件[filter:condition:(&(case.caseType in(Scase))(sdedeplicate中的case.sourceName)(&(SExtendedAttribute1中的history.attribute)(history.modifiedBy eq 3ff0000000000000)))需要根据新的更改更改自定义收集器。
    Lucene 4.6.0:
    TermsQuery{field=case.id}
    fromQuery=+(history.attribute:SExtendedAttribute1)  
    +history.modifiedBy:3ff0000000000000  (different parameter) Lucene 8.0.0:
    TermsQuery{field=case.idfromQuery=+(history.attribute:SExtendedAttribute1)  
     +history.modifiedBy:3ff0000000000000}
    
    fromQuery=+(history.attribute:SExtendedAttribute1)  
     +history.modifiedBy:3ff0000000000000  (different parameter is also visible.)
    
    JoinUtil.createJoinQuery(fromField, false, toField, Query, srch, ScoreMode.None);