组查询中的Solr错误
我需要使用solr进行地址搜索。我必须把国家和州放在城市搜索中,但这里的数据有问题 通过此查询,我获得了所有分组的城市:组查询中的Solr错误,solr,Solr,我需要使用solr进行地址搜索。我必须把国家和州放在城市搜索中,但这里的数据有问题 通过此查询,我获得了所有分组的城市: Query: country:"SPAIN" AND state:"MURCIA" Field: city Params: group=true&group.field=ciudadElectoral&group.format=simple 我得到这个: { "responseHeader": { "status": 0, "QTime
Query: country:"SPAIN" AND state:"MURCIA"
Field: city
Params: group=true&group.field=ciudadElectoral&group.format=simple
我得到这个:
{
"responseHeader": {
"status": 0,
"QTime": 3,
"params": {
"group.format": "simple",
"fl": "city",
"indent": "true",
"q": "country:\"SPAIN\" AND state:\"MURCIA\"",
"_": "1493920188445",
"group.field": "city",
"group": "true",
"wt": "json"
}
},
"grouped": {
"city": {
"matches": 80,
"doclist": {
"numFound": 80,
"start": 0,
"docs": [
{
"city": "CIUDAD DE BUENOS AIRES"
},
{
"city": "CIUDAD DE BUENOS AIRES"
},
{
"city": "VILLA MARTINEZ"
},
{
"city": "PALERMO"
}
]
}
}
}
}
布宜诺斯艾利斯城被复制,另一座城市阿尔博罗托别墅也不见了
如果我推迟参数group.format=simple,我将获得以下输出:
{
"responseHeader": {
"status": 0,
"QTime": 2,
"params": {
"fl": "city",
"indent": "true",
"q": "country:\"SPAINT\" AND state:\"MURCIA\"",
"_": "1493920434726",
"group.field": "city",
"group": "true",
"wt": "json"
}
},
"grouped": {
"city": {
"matches": 80,
"groups": [
{
"groupValue": "de",
"doclist": {
"numFound": 5,
"start": 0,
"docs": [
{
"city": "CIUDAD DE BUENOS AIRES"
}
]
}
},
{
"groupValue": "buen",
"doclist": {
"numFound": 3,
"start": 0,
"docs": [
{
"city": "CIUDAD DE BUENOS AIRES"
}
]
}
},
{
"groupValue": "vill",
"doclist": {
"numFound": 2,
"start": 0,
"docs": [
{
"city": "VILLA MARTINEZ"
}
]
}
},
{
"groupValue": "palerm",
"doclist": {
"numFound": 70,
"start": 0,
"docs": [
{
"city": "PALERMO"
}
]
}
}
]
}
}
}
我可以看到groupValue有一个奇怪的值,而不是字段的完整值。我认为这就是问题所在
我的solar版本是4.10,有人知道如何正确执行此查询吗?谢谢。如果要按字段分组,则该字段应为字符串字段或带有关键字标记器的字段,该字段只包含小写筛选器。您所看到的是在处理过的令牌上执行的分组,这是Solr在其幕后索引中的内容。使用带有小写字母的字符串字段或关键字标记器可以避免拆分和终止这些字段
您可以看到,巴勒莫已被处理为palerm,而布宜诺斯艾利斯城已被拆分为多个代币,其中包括DE和buen。然后将这些值用于组操作,得到与预期不同的结果。谢谢,我在文档中看到了这种情况我是SOLR的新手。触摸这个可能会很枯燥,最后我把它改成了Oracle查询。您只需要将其作为字符串字段使用。您可以使用copyField指令将其复制到用于分组的单独字段中。这就像你的模式中的两条语句。