Ответы пользователя по тегу Sphinx
  • Где можно раздобыть словарь Wordforms для Sphinx?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    Мне обычно хватает словарей lemmatize_ru_all для морфологии.
    Ответ написан
  • Как совершить поиск в sphinx на русском языке?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    Конфиг в студию + схему таблички и запрос в SphinxQl
    Пока моя догадка что у вас разная кодировка

    Приведу конфиг на всякий пожарный который, я из проекта в проект слегка переписываю под нужны..
    ## Базовый конфиг для всех источников
    source sitename_config
    {
    	type			= mysql
    	sql_host		= localhost
    	sql_user		= root
    	sql_pass		= mysql
    	sql_db			= new_site
    	sql_port		= 3306
    
        	sql_query_pre = SET NAMES utf8
        sql_query_pre = SET CHARACTER SET utf8
    }
    
    # применили конфиг путем наследования
    source sitename_audio :sitename_config
    {
    	sql_query = \
    		SELECT a.* \
    		FROM  audio a
    # указываем какие поля мы хотим индексировать
    		sql_attr_uint	 = user_id
    		sql_field_string = id3_title
    		sql_field_string = id3_artist
    		sql_field_string = description
    		sql_attr_json    = id3_json
    }
    
    index sitename_audio 
    {
    	source			  = sitename_audio 
    	path			  = e:/Server/sphinx/data/sitename_audio
    	docinfo			  = extern
    	charset_table     = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F
    	min_word_len      = 3
    	html_strip        = 1       
    	min_infix_len     = 3      
    	index_exact_words = 1
    	blend_chars = &,U+23
    
    	#morphology		= stem_en
    	#morphology		= stem_enru, soundex, metaphone
    
    # морфология через словари словоформ...
    	morphology      = lemmatize_ru_all
    }
    
    ##################
    #  Comon config
    ##################
    
    indexer
    {
    	mem_limit		= 128M
    }
    
    searchd
    {
    	listen			= 9312
    	listen			= 9306:mysql41
    	log				= e:/Server/sphinx/log/searchd.log
    	query_log		= e:/Server/sphinx/log/query.log
    	read_timeout	= 5
    	max_children	= 30
    	pid_file		= e:/Server/sphinx/log/searchd.pid
    	max_matches		= 1000
    	seamless_rotate	= 1
    	preopen_indexes	= 1
    	unlink_old		= 1
    	workers			= threads # for RT to work
    	binlog_path		= e:/Server/sphinx/data
    }
    
    common
    {
    	lemmatizer_base = e:/Server/sphinx/dicts/
    }
    Ответ написан
    Комментировать
  • Нет команды search в sphinx, как проверить в консоли linux индексацию?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    убедитесь что searchd запущен
    дальше через интерфейс mysql тестируйте
    $ mysql -P 9306 -h 0
    Ответ написан
    Комментировать
  • Почему yii2-sphinx не находит столбцы в индексе sphinx?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    1 по рукам, то что хотите отдать в выдачи нужно указать в source
    sql_field_string = text
    sql_attr_uint = user_id
    sql_attr_json = personal_json
    sql_attr_timestamp = created_at

    2 Используйте наследование
    source config_mysite
    {
    	type			= mysql
    	sql_host		= localhost
    	sql_user		= root
    	sql_pass		= mysql
    	sql_db			= new_db
    	sql_port		= 3306
    
    	sql_query_pre = SET NAMES utf8
        sql_query_pre = SET CHARACTER SET utf8
    }
    
    source mysite_selposts :config_mysite
    {
    	sql_query = \
    SELECT `id`, `text` FROM sel_posts  
    
        sql_field_string = text
    }

    3 зарегистрированные слова которые вы используете нужно оборачивать в кавычки `text`
    Ответ написан
    Комментировать
  • Проблема с ранжированием и bm25

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    Привет удалось вам узнать почему так?
    Ответ написан
    Комментировать
  • Как задать в SphinxQL несколько Option?

    sanchezzzhak
    @sanchezzzhak Автор вопроса
    Ля ля ля...
    В общем перечисляем - это дело через запятую с пробелом
    OPTION field_weights=(name=10,full_description=1), max_matches=10000, ranker=expr('sum((4*lcs+2*(min_hit_pos==1)+exact_hit)*user_weight)*1000+bm25')


    Для тех кто будет использовать!
    max_matches=10000 также нужно задать в конфиге searchd потом перезапустить searchd, иначе результат получим 0 документов.

    Любые изменения с searchd требует перезапуск сервиса.
    Тестил все на shinxql версия 2.2.3 beta на пыхе.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы база данных sphinx индексировалась поисковыми системами (Яндекс, google)?

    sanchezzzhak
    @sanchezzzhak
    Ля ля ля...
    У вас сайт написан на PHP

    Создайте таблицу
    id slug ( пример 1d200a-0202014-05-04-11-45-021201473224-detail ) content - содержимое PDF

    Дальше качаем fpdf php парсим PDF файлы, можно сделать скрипт который сразу все перекодирует мучительно долго, оформленный результат нужно записать в content.

    Или делать вывод текста из с sphinx на указанную запись.
    Ответ написан
    Комментировать