Solr为同一查询提供了不同的查询

时间:2014-07-18 22:04:38

标签: solr lucene

我正在使用Solr搜索机构......我的Solr DB有大约400,000个文档,每个文档都有多个字段,如(“name”,“id”,“city”,...)......

我的数据库中的文档如下所示:

"docs": 
{
    "id": "91348",
    "p_code": "71637",
    "name": "University of Toronto - Mississauga",
    "ext_name": "",
    "city": "Mississauga",
    "country": "CA",
    "state": "ON",
    "type": "academic/campus",
    "alt_name": "",
    "ext_city": "",
    "zip": "L5L 1C6",
    "alt_ext_city": "",
}

我写了一个像{name: (university of toronto)}...这样的查询。前两个匹配是:

"docs": 
{
    "id": "91348",
    "p_code": "71637",
    "name": "University of Toronto - Mississauga",
    "ext_name": "",
    "city": "Mississauga",
    "country": "CA",
    "state": "ON",
    "type": "academic/campus",
    "alt_name": "",
    "ext_city": "",
    "zip": "L5L 1C6",
    "alt_ext_city": "",
    "_version_": 1473710223400108000,
    "score": 1.499069
},

{
    "id": "10624",
    "p_code": "7938",
    "name": "University of Toronto",
    "ext_name": "",
    "city": "Toronto",
    "country": "CA",
    "state": "ON",
    "type": "academic",
    "alt_name": "Saint George Downtown Campus",
    "ext_city": "",
    "zip": "M5S 1A1",
    "alt_ext_city": "",
    "_version_": 1473710220148473900,
    "score": 1.4967358
}

我很惊讶地看到“多伦多大学 - 密西沙加”的得分高于“多伦多大学”。直观地说,包含“多伦多大学 - 密西沙加”的领域应该得到较低的分数,因为它比另一个长。

我也非常惊讶地看到Solr为querynorm提供了不同的值,如下所示: 顶级文档的(0.03198291 = queryNorm)和排名第二的文档的(0.03203078 = queryNorm)。我假设所有文档的查询范数应该完全相同,因为它只是查询的函数。

我不确定Solr的工作方式是否有问题,或索引或配置有问题?有人遇到过同样的问题吗?

1 个答案:

答案 0 :(得分:0)

确保该字段的omitNorms设置为false,并且您的集合使用的是最新版本的架构。然后重新索引所有文档以使更改到该字段生效。

我发现在索引新内容之前,最好通过完全擦除索引来处理某些架构修改。我不确定,但我相信这可能就是其中之一。对于大多数更改,您只需重新索引所有内容并覆盖旧内容即可。