За последние 24 часа нас посетили 20976 программистов и 1015 роботов. Сейчас ищут 407 программистов ...

Поиск по маске в sphinx

Тема в разделе "Поисковая система php.ru", создана пользователем mihdan, 6 май 2012.

  1. mihdan

    mihdan Активный пользователь

    С нами с:
    6 май 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Одинцово
    Мой конфиг:

    Код (Text):
    1.  
    2. source FirmsWhatSource : InforosSource
    3. {
    4.     sql_query = \
    5.         SELECT \
    6.             r.id, \
    7.             r.pid, \
    8.             r.name_ru, \
    9.             r.name_en \
    10.         FROM crm_firms_rubrics AS r \
    11.         WHERE r.id >= $start \
    12.         AND r.id <= $end \
    13.         AND r.is_vis = 1 \
    14.         AND r.name_ru <> ''
    15.  
    16.     sql_query_range = SELECT MIN(id),MAX(id) FROM crm_firms_rubrics
    17.     sql_range_step = 1000
    18.     sql_ranged_throttle = 0
    19.     sql_attr_uint = pid
    20.     sql_field_string = name_ru
    21. }
    22. # Индекс для автокомплита в поле WHAT
    23. index FirmsWhatIndex {
    24.     source            = FirmsWhatSource
    25.     path            = /var/db/sphinxsearch/data/test
    26.     docinfo = extern
    27.     mlock= 0
    28.     morphology = stem_enru
    29.  
    30.     min_word_len = 3    
    31.     min_infix_len = 0
    32.     #prefix_fields = name_ru
    33.     min_prefix_len = 0 #искать слева
    34.     # Позволим искать со звездочкой
    35.     enable_star = 1
    36.     charset_type = utf-8
    37.     html_strip = 1
    38. }
    39.  


    мой скрипт:

    Код (Text):
    1.  
    2. <?php
    3.             $sphinx = new SphinxClient();
    4.             $sphinx->SetServer ('localhost', 9312);
    5.             $sphinx->SetConnectTimeout (1);
    6.             $sphinx->SetArrayResult (true);
    7.             $sphinx->SetMatchMode (SPH_MATCH_EXTENDED2);
    8.             $sphinx->SetSortMode(SPH_SORT_RELEVANCE);
    9.  
    10.             $q = "@* *{$q}*";
    11.  
    12.             $res = $sphinx->Query($q, 'FirmsWhatIndex');
    13.  
    14.             if ($res !== false && is_array($res["matches"])) {
    15.                 foreach($res["matches"] as $docinfo) {                    
    16.                     echo $db->getOne("SELECT `name_ru` FROM `crm_firms_rubrics` WHERE `id` = " . $docinfo['id'])."\n";
    17.                 }
    18.             }
    19. ?>


    Не находит ничего, либо находит непонятно что.