Ответы пользователя по тегу Sphinx
  • Как настроить такое на Sphinx?

    @den2a
    # для поиска *запрос*
    min_infix_len = 3

    # для поиска запрос*
    # min_prefix_len = 3

    #Позволяет использовать звездочки в запросах, к примеру по запросу *пр* будут найдены проспект, привет, апроксимация и др
    enable_star = 1

    # Автоматически расширяет поисковый запрос до трех запросов
    expand_keywords = 1

    P.S.
    min_infix_len или min_prefix_len
    Если указать два параметра, то будет ошибка.
    Ответ написан
    Комментировать
  • Как настроить релевантность Sphinx по началу строки?

    @den2a Автор вопроса
    Ключевой параметр min_hit_pos
    Подробнее здесь
    Как вариант:
    $query = 'кисточ';
    
    	try {
    		$sp = new PDO('mysql:host=127.0.0.1;port=9306', '', '');
    		$list = $sp->query("SELECT * FROM test1 WHERE MATCH('$query') OPTION ranker = expr('sum(4*lcs+100/(min_hit_pos)+bm25)')");
    		
    		while ( $row = $list->fetch(PDO::FETCH_ASSOC) ) { //Преобразуем результат в ассоциативный массив
    			echo $row['id'] . ' - '; //id товара в mysql
    			echo $row['weight'] . ' - '; //Релевантный вес
    			echo $row['name'] . '<br/>'; //Название товара
    		};
    		
    	} catch( PDOException $e) {
    		echo "You have an error: ".$e->getMessage()."<br>";
    		echo "On line: ".$e->getLine();
    	}
    Ответ написан
    Комментировать