C# Lucene中的点击率对文档进行排名吗?

C# Lucene中的点击率对文档进行排名吗?,c#,asp.net,lucene.net,C#,Asp.net,Lucene.net,这是我的代码: string word = txtQuery.Text; IndexReader reader = IndexReader.Open("e:/indexDir"); IndexSearcher searcher = new IndexSearcher(reader); QueryParser parser = new QueryParser("Content", new StandardAnalyzer()); Query query = parser.Pa

这是我的代码:

 string word = txtQuery.Text;
 IndexReader reader = IndexReader.Open("e:/indexDir");   
 IndexSearcher searcher = new IndexSearcher(reader);   
 QueryParser parser = new QueryParser("Content", new StandardAnalyzer());
 Query query = parser.Parse(word);
 Hits hits = searcher.Search(query);
 int hitCount = hits.Length();
 Response.Write("searcher order--------------</br>");

 for (int temp = 0; temp < hitCount; temp++)
 {
    Response.Write(searcher.Doc(temp).Get("Content") + "</br>");       
 }

 Response.Write("hits order--------------</br>");

 for (int i = 0; i < hitCount; i++)
 {
    Document doc = hits.Doc(i);
    Response.Write( doc.Get("Content") + "</br>");
    Response.Write("Score-----" + hits.Score(i)+"Doc id---"+hits.Id(i)+ "</br>");
 }
stringword=txtQuery.Text;
IndexReader=IndexReader.Open(“e:/indexDir”);
IndexSearcher search=新的IndexSearcher(阅读器);
QueryParser parser=newQueryParser(“内容”,newStandardAnalyzer());
Query=parser.Parse(word);
Hits=searcher.Search(查询);
int hitCount=hits.Length();
回复。填写(“搜索者订单-----------------
”; 对于(int-temp=0;temp”; } 响应。写入(“点击订单-----------------
”; 对于(int i=0;i”; 响应。写入(“分数------”+点击率分数(i)+“文档id”--“+点击率id(i)+”
”; }
我在这里发现的是,搜索者的文档顺序只是读者如何阅读它

但是hits文件的顺序是基于文件的分数


那么这就是我们所说的“文档排名”?

我在这里发现的是,搜索者的文档顺序仅仅是读者阅读文档的方式……但hits文档顺序是基于文档得分的

不,这与“文件排名”无关
searcher.Doc
indexReader.Doc
的包装器。在第一个循环中,您所做的只是读取索引(索引中的前N个文档),而不是搜索结果

for (int i= 0; i < N ; i++)
{
    Response.WriteLine(searcher.Doc(i).Get("Content"));       
}
for(int i=0;i
即使您没有调用
searcher.Search
,您的第一个循环也会工作相同

如果检查两个循环的输出,您将看到它们实际上包含不同的文档

hits.Doc(n)
返回结果列表中的第n个文档,而
searcher.Doc(n)
返回索引中的第n个文档


现在您的问题是,
Lucene中的点击量是否对文档进行排序?


在Lucene.Net中,搜索结果默认按
分数排序(如果您不提供排序字段)。

我不太确定这里的问题是什么,但Lucene基本上是根据分数排序结果(即与权重相比的最佳匹配)。分数可能受到文档术语权重的影响:要设置权重,您需要查看Lucene中的有效负载功能。