首页 > 解决方案 > 如何在 lucene 中组合多个双范围查询?

问题描述

每个文档都有几个 8 维 DoublePoint 字段。
我想一起查询几个 DoublePoint 字段(如 AND 运算符)。
使用newRangeQuery 我不确定如何使用它自己。

首先,我究竟如何使用 newRangeQuery?(我没有找到任何合适的例子)。
其次,我如何组合这样的几个查询?

更新:
8 维 DoublePoint 看起来像:
[1.2, 1.3, 2.3, 3.4, 1.2, 1.3, 2.3, 3.4]

我的意思是如何在搜索者完整代码/使用中使用 newRangeQuery。如何在没有分析器的情况下创建搜索器?还是没有评分功能?(因为分数是针对文本的,不是吗?)
来自此处的简单完整搜索器示例

public List<Document> searchFiles(String inField, String queryString) {
   Query query = new QueryParser(inField, analyzer)
      .parse(queryString);
   Directory indexDirectory = FSDirectory
      .open(Paths.get(indexPath));
   IndexReader indexReader = DirectoryReader
      .open(indexDirectory);
   IndexSearcher searcher = new IndexSearcher(indexReader);
   TopDocs topDocs = searcher.search(query, 10);

   return topDocs.scoreDocs.stream()
     .map(scoreDoc -> searcher.doc(scoreDoc.doc))
     .collect(Collectors.toList());
}

标签: javalucene

解决方案


推荐阅读