Python MYSQL中未正确识别不同的术语

Python MYSQL中未正确识别不同的术语,python,mysql,database,mysql-python,unicode-string,Python,Mysql,Database,Mysql Python,Unicode String,我创建了一个数据库,其中存储了一个简单的反向索引,该索引是由孟加拉文文本文档创建的 表名称:简单索引,主键{Term,Document\u id} 表格定义: CREATE TABLE IF NOT EXISTS basicindex.simple_index ( term varchar(255) NOT NULL, doc_id INT NOT NULL, frequency INT NOT NULL, PRIMARY KEY (term,doc_id)

我创建了一个数据库,其中存储了一个简单的反向索引,该索引是由孟加拉文文本文档创建的

表名称:简单索引,主键{Term,Document\u id}

表格定义

CREATE TABLE IF NOT EXISTS basicindex.simple_index (
    term varchar(255) NOT NULL, 
    doc_id INT NOT NULL,
    frequency INT NOT NULL,
    PRIMARY KEY (term,doc_id) 
)
select doc_id from basicindex.simple_index where term='খুঁজে';
select doc_id from basicindex.simple_index where term = 'খুজে';
奇怪的是,我发现以下两个不同的词:

  • খুঁজে - 存在于文件3、16、34中
  • খুজে - 见文件1
  • 当我执行以下查询时:

    查询1

    CREATE TABLE IF NOT EXISTS basicindex.simple_index (
        term varchar(255) NOT NULL, 
        doc_id INT NOT NULL,
        frequency INT NOT NULL,
        PRIMARY KEY (term,doc_id) 
    )
    
    select doc_id from basicindex.simple_index where term='খুঁজে';
    
    select doc_id from basicindex.simple_index where term = 'খুজে';
    
    查询2

    CREATE TABLE IF NOT EXISTS basicindex.simple_index (
        term varchar(255) NOT NULL, 
        doc_id INT NOT NULL,
        frequency INT NOT NULL,
        PRIMARY KEY (term,doc_id) 
    )
    
    select doc_id from basicindex.simple_index where term='খুঁজে';
    
    select doc_id from basicindex.simple_index where term = 'খুজে';
    
    两者都返回4行,声称খুঁজে 及খুজে 在所有四份文件中都有

    从日志中我发现[Distinct Term,document id,frequency]খুঁজে 仅为文档id 1插入了:

    为插入索引খুজে ->{DocID:1,频率:1}

    ('খুজে', 1,1)

    及খুঁজে 已插入到文档ID 3、16和34中

    为插入索引খুঁজে ->{DocID:3,频率:1}

    ('খুঁজে', (三、一)

    为插入索引খুঁজে ->{DocID:16,频率:2}

    ('খুঁজে', 16、2)

    为插入索引খুঁজে ->{DocID:34,频率:1}

    ('খুঁজে', 34,1)

    以下是术语的unicode值:

    খুঁজে [('খ', 2454), ('ু',2497), ('ঁ',2433), ('জ',2460), ('ে',2503)]

    খুজে [('খ',2454), ('ু',2497), ('জ',2460), ('ে',2503)]

    我正在使用MYSQL 8.0.13版。我请求有人帮助我理解为什么MYSQL数据库表现出这样的行为。为什么它不能区分খুঁজে' 而且খুজে'? 我能做些什么来纠正这个问题

    我已附上文件1、3、16和34以及输入和输出日志文件,供您参考

    两者都返回4行,声称খুঁজে 及খুজে 在所有四份文件中都有

    检查已使用的排序规则。明确指定所需的排序

    例如:

    学期 文件编号 频率 খুঁজে 1. 0 খুজে 2. 0
    @谢谢你的回复。表排序详细信息为:basicindex.simple_索引“utf8mb4_0900_ai_ci”。我在执行上述两个查询之前进行了尝试。你能给我建议一下这个问题的解决办法吗?非常感谢您的帮助。'utf8mb4_0900_ai_ci'不区分重音和大小写。为您的案例选择正确的排序规则,并按“按答案”中所示进行指定。SET NAMES只设置与一组排序规则匹配的字符集。非常感谢。该问题似乎是由于在utf8mb4_0900_ai_ci中包含不区分重音(ai)而出现的。我把它改成了对重音敏感的,效果很好<代码>从简单索引中选择文档id,其中term='1খুঁজে'将utf8mb4_0900_作为_ci进行校对