• SphinxQL на php?

    ManticoreSearch
    @ManticoreSearch
    Попробуйте более свежую версию Sphinx или Manticore Search. Похоже на этот баг sphinxsearch.com/bugs/view.php?id=1249
  • Как увеличить скорость поиска в sphinx?

    ManticoreSearch
    @ManticoreSearch
    Кто-то может объяснить, зачем нужен sql_field_string??


    sql_field_string позволяет проиндексировать колонку из базы и как полнотекстовое поле и как строковый атрибут. Второе естественно кушает очень много памяти, т.к. атрибуты хранятся в памяти, в том числе и строковые. Нужно обычно в очень редких случаях, когда в атрибутах получается хранить только текст, а не число, а хранить хочется, чтобы пользоваться всеми преимуществами атрибутов (сортировка, фильтрация, группировка и т.п.)
  • Как сделать так, чтобы sphinx искал каждый проиндексированный символ?

    ManticoreSearch
    @ManticoreSearch
    Здравствуйте. А в какой версии Sphinx такая беда? В последних версиях и Sphinx и Manticore Search указанный конфиг должен позволять по "ооо те* и даже "ооо т* найти документ с "ООО тестовая организация" и даже по "ооо *ес*" найдется, а вот по "ооо *е*" не найдется, т.к. минимальное значение min_infix_len на самом деле 2 (в последних версиях при индексации про это показывается warning). Вот примеры:

    [snikolaev@dev01 src]$ mysql -P9314 -h0
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 1
    Server version: 2.6.4 3d31c7c@180329 dev
    
    Copyright (c) 2009-2017 Percona LLC and/or its affiliates
    Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> select * from idx_min where match('ооо т*');
    +------+------------------------------------------------+
    | id   | body                                           |
    +------+------------------------------------------------+
    |    1 | ООО тестовая организация                       |
    +------+------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> select * from idx_min where match('ооо *ес*');
    +------+------------------------------------------------+
    | id   | body                                           |
    +------+------------------------------------------------+
    |    1 | ООО тестовая организация                       |
    +------+------------------------------------------------+
    1 row in set (0.00 sec)
    
    mysql> select * from idx_min where match('ооо *е*');
    Empty set (0.00 sec)
    
    mysql> select * from idx_min where match('ооо те*');
    +------+------------------------------------------------+
    | id   | body                                           |
    +------+------------------------------------------------+
    |    1 | ООО тестовая организация                       |
    +------+------------------------------------------------+
    1 row in set (0.00 sec)