Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Lucene:跨查询比较结果_Java_Search_Lucene_Indexing - Fatal编程技术网

Java Lucene:跨查询比较结果

Java Lucene:跨查询比较结果,java,search,lucene,indexing,Java,Search,Lucene,Indexing,我需要比较不同Lucene查询中搜索结果的相关性 实际上,我有一个索引的文本文档集,当对该集进行搜索时,我希望返回的不是该集的N个最佳结果,而是符合查询“足够好”的所有结果 这个“足够好”参数是可配置的(比如在0(文档绝对不相关)和1(文档是可能的最佳匹配)之间),但我希望它以相同的方式影响所有查询 根据我在互联网上的发现,这不是一项简单的任务。有谁能给我一个关于如何解决这个问题的提示吗 非常感谢 我只是在寻找这个问题的答案。以下是我在环顾四周时发现的: 但是,如果您有某些受限类型的查询,例如仅

我需要比较不同Lucene查询中搜索结果的相关性

实际上,我有一个索引的文本文档集,当对该集进行搜索时,我希望返回的不是该集的N个最佳结果,而是符合查询“足够好”的所有结果

这个“足够好”参数是可配置的(比如在0(文档绝对不相关)和1(文档是可能的最佳匹配)之间),但我希望它以相同的方式影响所有查询

根据我在互联网上的发现,这不是一项简单的任务。有谁能给我一个关于如何解决这个问题的提示吗


非常感谢

我只是在寻找这个问题的答案。以下是我在环顾四周时发现的:


但是,如果您有某些受限类型的查询,例如仅由
TermQuery
s组成的
BooleanQuery
,那么。

如果您想比较两个或多个查询,我找到了一个解决方法。您可以使用levensteinstitutionlucenelevensteinstitution(Damerau)类将得分最高的文档与查询表进行比较,以获得查询表与结果之间的距离

结果就是它们之间的相似性。对每个要比较的查询执行此操作。现在,您有了一个工具,可以使用queryterm和最高结果的相似性来比较查询。现在,您可以选择相似度得分最高的查询,并将其用于下一个适当的操作

//Damerau LevenstheinDistance
LuceneLevenshteinDistance d = new LuceneLevenshteinDistance();

similiarity = d.getDistance(queryterm, yourResult );

不知道你是什么意思?是否要设置查询结果的阈值?使用Solr很容易做到这一点。对于Lucene,您需要编写一个自定义收集器:谢谢Mikos,但正如Shashikant Kore的评论中所述,分数与查询有关,因此我不能使用相同的阈值来衡量多个查询结果的“优度”。我正在研究以某种方式对分数进行标准化的方法,以便这些标准化的值在所有查询的“优点”方面都是相同的。啊!我想我更好地理解你的问题,但我觉得这比Lucene本身更适合统计学。您可能希望在统计数据中查找方差分析或卡方检验,同时可能帮助您使用结果文档分数数组确定查询的拟合优度。嗯。