Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.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
Php Manticore-sphinxQL组(按重复的分组id)_Php_Full Text Search_Sphinx_Sphinxql_Manticore - Fatal编程技术网

Php Manticore-sphinxQL组(按重复的分组id)

Php Manticore-sphinxQL组(按重复的分组id),php,full-text-search,sphinx,sphinxql,manticore,Php,Full Text Search,Sphinx,Sphinxql,Manticore,当我在Manticore中使用GROUP BY语法时,会出现分组id重复的结果。我们刚刚从sphinx 2.X迁移到最新的Manticore,而在sphinx中,相同的查询不会出现此问题 这是sphinxQL查询: 从模型id所在的搜索中选择模型id、模型根、模型名称!=0按型号分组\u根组内订单按型号级别ASC订单按型号级别ASC,型号出现说明,型号名称ASC限制0,13 因此,对模型根进行分组,在->10,11(Cannon)->处有一个重复的键,这不是我所期望的 结果是: array:13

当我在Manticore中使用GROUP BY语法时,会出现分组id重复的结果。我们刚刚从sphinx 2.X迁移到最新的Manticore,而在sphinx中,相同的查询不会出现此问题

这是sphinxQL查询:

从模型id所在的搜索中选择模型id、模型根、模型名称!=0按型号分组\u根组内订单按型号级别ASC订单按型号级别ASC,型号出现说明,型号名称ASC限制0,13

因此,对模型根进行分组,在->10,11(Cannon)->处有一个重复的键,这不是我所期望的

结果是:

array:13 [▼
  0 => array:3 [▼
    "model_id" => "62763"
    "model_root" => "62763"
    "model_name" => "HP"
  ]
  1 => array:3 [▼
    "model_id" => "72771"
    "model_root" => "72771"
    "model_name" => "Sony"
  ]
  2 => array:3 [▼
    "model_id" => "72524"
    "model_root" => "72524"
    "model_name" => "Compaq"
  ]
  3 => array:3 [▼
    "model_id" => "62783"
    "model_root" => "62783"
    "model_name" => "Samsung"
  ]
  4 => array:3 [▼
    "model_id" => "62760"
    "model_root" => "62760"
    "model_name" => "Asus"
  ]
  5 => array:3 [▼
    "model_id" => "62761"
    "model_root" => "62761"
    "model_name" => "Toshiba"
  ]
  6 => array:3 [▼
    "model_id" => "85086"
    "model_root" => "85086"
    "model_name" => "Panasonic"
  ]
  7 => array:3 [▼
    "model_id" => "151763"
    "model_root" => "151763"
    "model_name" => "Acer"
  ]
  8 => array:3 [▼
    "model_id" => "72548"
    "model_root" => "72548"
    "model_name" => "Packard Bell"
  ]
  9 => array:3 [▼
    "model_id" => "62762"
    "model_root" => "62762"
    "model_name" => "Lenovo"
  ]
  10 => array:3 [▼
    "model_id" => "83072"
    "model_root" => "83072"
    "model_name" => "Canon"
  ]
  11 => array:3 [▼
    "model_id" => "83072"
    "model_root" => "83072"
    "model_name" => "Canon"
  ]
  12 => array:3 [▼
    "model_id" => "73476"
    "model_root" => "73476"
    "model_name" => "LG"
  ]
]
预期:

array:13 [▼
  0 => array:3 [▼
    "model_id" => "62763"
    "model_root" => "62763"
    "model_name" => "HP"
  ]
  1 => array:3 [▼
    "model_id" => "72771"
    "model_root" => "72771"
    "model_name" => "Sony"
  ]
  2 => array:3 [▼
    "model_id" => "72524"
    "model_root" => "72524"
    "model_name" => "Compaq"
  ]
  3 => array:3 [▼
    "model_id" => "62783"
    "model_root" => "62783"
    "model_name" => "Samsung"
  ]
  4 => array:3 [▼
    "model_id" => "62760"
    "model_root" => "62760"
    "model_name" => "Asus"
  ]
  5 => array:3 [▼
    "model_id" => "62761"
    "model_root" => "62761"
    "model_name" => "Toshiba"
  ]
  6 => array:3 [▼
    "model_id" => "85086"
    "model_root" => "85086"
    "model_name" => "Panasonic"
  ]
  7 => array:3 [▼
    "model_id" => "151763"
    "model_root" => "151763"
    "model_name" => "Acer"
  ]
  8 => array:3 [▼
    "model_id" => "72548"
    "model_root" => "72548"
    "model_name" => "Packard Bell"
  ]
  9 => array:3 [▼
    "model_id" => "62762"
    "model_root" => "62762"
    "model_name" => "Lenovo"
  ]
  10 => array:3 [▼
    "model_id" => "83072"
    "model_root" => "83072"
    "model_name" => "Canon"
  ]
  11 => array:3 [▼
    "model_id" => "73476"
    "model_root" => "73476"
    "model_name" => "LG"
  ]
  12 => array:3 [▼
    "model_id" => "73266"
    "model_root" => "73266"
    "model_name" => "Fujitsu"
  ]
]
这是索引定义:

index search
{
  type = plain
  source = search
  path = /var/lib/manticore/data/search
  min_word_len = 1
  dict = keywords
  min_prefix_len = 1
  index_field_lengths = 1
  charset_table = 0..9,non_cjk,-,.,/,"
}
在所需字段的源定义中:

sql_attr_uint = model_id
sql_attr_uint  = model_root
sql_field_string = model_name

你知道查询或索引定义有什么问题吗?

我复制了你的问题。是的,Manticore的行为在本例中有所不同,与Sphinx2.x相比,默认的max_匹配值(1000)很可能不够。在测试中,您提供的max_matches=1025应该足够了(而在Sphinx 2.2中是892)。在您的生产案例中,请自己尝试最佳价值


请在此处阅读max_matches如何影响分组结果

我无法重现。请提供更多详情。如果你能缩小你的测试,并提供数据集来重现问题,那就最好了。完整配置也是必需的。总的来说,它看起来像一只虫子。请随意在Manticore的github中提交一个问题。@ManticoreSearch我已经上传了简化的测试文件: