Большие и маленькие буковки

Приветствую!
Значит мантикоре(‘всех благ ей’):wink: выдаёт разные результаты по запросу с маленькими и большими буквами - нужно одинаковые.
Поглядите пример товарищи : запрос ‘hren marzovij’ и ‘HREN MARZOVIJ’ где в первом случае результатов 0 а во втором 20. В бд запись естественно с большими буквами и запись в конф. charset_table = non_cjk, type= plain.
Надеюсь вы поняли суть вопроса.

Благодарю за огромнейшее рвение побыстрее да качественнее помочь мне, ведь все люди братья. :wink::rofl: Извините за лирику, но реально нужна ваша помощь… :flushed: :wink:

Нужен воспроизводимый кейс. Так не воспроизводится:

➜  ~ cat csv_hren.conf
searchd {
    listen = 9315:mysql41
    log = searchd.log
    pid_file = searchd.pid
    binlog_path =
}

source src {
    type = csvpipe
    csvpipe_command = echo "1,hren marzovij" && echo "2,HREN MARZOVIJ"
    csvpipe_field = f
}

index idx {
    type = plain
    source = src
    path = idx
    charset_table = non_cjk
}

➜  ~ indexer -c csv_hren.conf --all
Manticore 6.2.13 2e5c23656@231107 dev (columnar 2.2.5 b8be4eb@230928) (secondary 2.2.5 b8be4eb@230928)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2023, Manticore Software LTD (https://manticoresearch.com)

using config file '/Users/sn/csv_hren.conf'...
indexing table 'idx'...
collected 2 docs, 0.0 MB
creating secondary index
creating lookup: 0.0 Kdocs, 100.0% done
sorted 0.0 Mhits, 100.0% done
total 2 docs, 26 bytes
total 0.044 sec, 586 bytes/sec, 45.12 docs/sec
total 3 reads, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg
total 15 writes, 0.000 sec, 0.0 kb/call avg, 0.0 msec/call avg

➜  ~ searchd -c csv_hren.conf
Manticore 6.2.13 2e5c23656@231107 dev (columnar 2.2.5 b8be4eb@230928) (secondary 2.2.5 b8be4eb@230928)
Copyright (c) 2001-2016, Andrew Aksyonoff
Copyright (c) 2008-2016, Sphinx Technologies Inc (http://sphinxsearch.com)
Copyright (c) 2017-2023, Manticore Software LTD (https://manticoresearch.com)

[49:39.582] [14599519] using config file '/Users/sn/csv_hren.conf' (325 chars)...
starting daemon version '6.2.13 2e5c23656@231107 dev (columnar 2.2.5 b8be4eb@230928) (secondary 2.2.5 b8be4eb@230928)' ...
listening on all interfaces for mysql, port=9315
precaching table 'idx'
precached 1 tables in 0.004 sec

➜  ~ mysql -P9315 -h0 -e "select * from idx where match('hren marzovij');"
+------+---------------+
| id   | f             |
+------+---------------+
|    1 | hren marzovij |
|    2 | HREN MARZOVIJ |
+------+---------------+
➜  ~ mysql -P9315 -h0 -e "select * from idx where match('HREN MARZOVIJ');"
+------+---------------+
| id   | f             |
+------+---------------+
|    1 | hren marzovij |
|    2 | HREN MARZOVIJ |
+------+---------------+

Что за кейс такой…, где оно искать…
csvpipe_command что ли к каждому запросу…:roll_eyes:

А ежели человеческим языком? То есть, чтобы с бд учитывались записи с БОЛЬШИМИ БУКВАМИ по запросу с маленькими мне что делать?

Нет ли вариантов chatset_table, типа A…Z > a…z где это уже учитывается? :roll_eyes:

Ничего не делать. Это работает по умолчанию. Почему не работает у вас - непонятно. Покажите как именно это не работает так же, как показал я, что работает, то есть:

  • полностью конфиг
  • как запускается индексация, видна версия
  • как запускается searchd, видна версия
  • как делается поиск: какая команда, какой результат

В идеале - модифицируйте мой компактный пример, чтоб он начал показывать проблему, потому что разбираться в килобайтах конфига времени может не найтись.

csvpipe_command - аналог sql_query. На токенизацию никак влиять не должно.

1 Like

Значит смотрите, оно работает с коробки только на русском и английском то есть на простых языках, где даже имеются библиотек, однако на других языках нужно поизвращатся чтобы оно хоть начало прилично работать… К примеру - на польском имеются символы в виде букв и.т.д Весь ансамбль языков я имею в моей дб… Так уж сложылось
…По ходу проблема в charset_table где нужно указывать символы типа …U01->k, U02->… и так далее. Наверно в этом всё дело. Спасибо за Ваши ответы. Ежели есть еще идеи - кидайте… :blush:

Там для большинства букв должно быть приведение к одному регистру, так что нужен конкретный пример, хотя бы одну букву. Как проверить - пример выше.

HREN MARZOVIJ не помогает воспроизвести проблему.

1 Like

Вы правы. Однако это пример. Согласен пример не очень - туповат. Но что Вы хотите - я имею коммерческую тайну что ищут мои посетители…:laughing::rofl: Огромное Вам спосибо!

Ну я и говорю - достаточно одной буквы.

Ежели бы я знал что дело в этом я так бы и сделал. Попробую разобраться. Ежели что - напишу.