Java Lucene顺序查询

Java Lucene顺序查询,java,lucene,Java,Lucene,我已经在java索引中创建了lucene,并且能够进行搜索。现在,我希望我的查询以这样的方式来维护秩序。比如说,我的索引中有以下内容 1 2 3 4 5 1 2 3 4 1 1 2 4 3 1 1 3 2 4 1 我的查询是1 3 4,然后它应该给出如下结果: 1 2 3 4 5 1 2 3 4 1 1 3 2 4 1 1 2 4 3 1 希望问题很清楚 谢谢, Ravi.您可以使用布尔查询并确保调用。如果您的索引是按docid排序的,这将限制文档变得混乱 编辑: 您还可以使用该类按索引或相

我已经在java索引中创建了lucene,并且能够进行搜索。现在,我希望我的查询以这样的方式来维护秩序。比如说,我的索引中有以下内容

1 2 3 4 5
1 2 3 4 1
1 2 4 3 1
1 3 2 4 1
我的查询是
1 3 4
,然后它应该给出如下结果:

1 2 3 4 5
1 2 3 4 1
1 3 2 4 1
1 2 4 3 1
希望问题很清楚

谢谢,
Ravi.

您可以使用布尔查询并确保调用。如果您的索引是按docid排序的,这将限制文档变得混乱

编辑:
您还可以使用该类按索引或相关性排序搜索。这看起来更有用,因为您可以在搜索中使用任何查询类型。

您可以使用它来查找非常接近并按特定顺序排列的术语。订购条件可以放宽。可以找到一篇关于跨度的优秀文章。

当我使用setAllowDocsOutOfOrder(true)时,它给出了“找不到”符号。我错过了什么?还有排序在这里有多有用我的查询也可以是1 4 3&在这种情况下,最后一次检索,即1 2 4 3 1应该排在第一位。哦,我误解了你的问题。现在,您似乎希望在文档中的关系与查询中的术语顺序匹配之前,按术语对点击进行排序。我原以为您的意思是按文档id排序将被保留。听起来你应该定义自己的自定义评分方法。我觉得这很好。仍然需要一种装箱查询的方法:最初我使用的是“queryQ1=newquery(Version.LUCENE_CURRENT,“Id”,analyzer).parse(dis.readLine());“如果我使用SpanQuery,查询将类似于”spanarquery q=new spanarquery(new SpanQuery[]{new SpanTermQuery(new Term(“Id”,“1”)),new SpanTermQuery(“Id”,“2”)},5000,true);”。如何从文件一次解析查询。我的查询长度将是“123”或“14345”等。