Sphinx и глюк индексатора/серача

Активист

Активист
Команда форума
Sphinx и глюк индексатора/серача

Есть поиск по сайту на основе sphnix, наблюдаю глюк

На сайте кодировка cp1251, также как и в БД.

В тексте есть фраза «Сибэлектротехком» , сфинск не ищит, говорит - нечего не найдено, НО, при запросе «СибэлектротехкомВ» идет поиск, и в результатах
PHP:
foreach ($news as &$_news) {
     if ($hilight = $sphinx->BuildExcerpts($_news, "partners_news", (isset($this->data['newSpellResult']) ? $this->data['newSpellResult'] : $this->query), $opts)) {
	 $_news = $hilight;
     }
}
поиска выдает "ЗАО В«Энергетические технологииВ» и ООО В«СибэлектротехкомВ» осуществляет" , т.е. везде к кавычкам добавляется В
 

DiMA

php.spb.ru
Команда форума
Берешь оригинальный текст, делаешь копию, грохаешь все левые символы (кроме букв/цифр/обычных знаков), особенно те же левые кавычки, и индексируешь/ищешь.
 

Активист

Активист
Команда форума
Вкурить не могу, как индесер настроить :)

Код:
source pages
{
	type               = mysql
	sql_host           = localhost
	sql_user           = su1234
	sql_pass           = 
	sql_db             = et

	
	sql_range_step = 500
	sql_query_pre  = SET NAMES cp1251
	sql_query_pre  = SET CHARACTER SET cp1251
	
	sql_query          = SELECT *, '2' AS `type` FROM `pages`    
 	sql_query_info     = SELECT * FROM `pages` WHERE `id` = $id
            		
    sql_attr_uint = type
 }



index pages
{
	source             = pages
	
	path               = /Web/var/et.web.local/httpdocs/sphinx/data/pages.db
	docinfo            = extern
 	morphology         = stem_en, stem_ru
 	html_strip         = 1
 	min_word_len       = 2
 } 
 
 
searchd
{
	port				= 3313
	log					= /Web/var/et.web.local/httpdocs/sphinx/log/sphinx.log
	query_log			= /Web/var/et.web.local/httpdocs/sphinx/log/query.log
	read_timeout		= 5
	max_children		= 30
	pid_file			= /Web/var/et.web.local/httpdocs/sphinx/data/sphinx.pid
	max_matches			= 1000
	seamless_rotate		= 0
	preopen_indexes		= 0
	unlink_old			= 1
}
[sql]
mysql> show create table `pages`\G
*************************** 1. row ************************
Table: pages
Create Table: CREATE TABLE `pages` (
`id` int(10) unsigned NOT NULL auto_increment,
`pageTitle` tinytext,
`address` tinytext,
`pageOwnerId` int(10) unsigned default NULL,
`redirect` tinytext,
`fullText` longtext,
`addDate` date default NULL,
`modifiedDate` date default NULL,
`isIndex` enum('0','1') default NULL,
`mainTemplate` tinytext,
`lang` tinytext,
`position` int(10) unsigned default '0',
`image` tinytext,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251
1 row in set (0.00 sec)

mysql>
[/sql]

-~{}~ 06.08.09 10:27:

DiMA
Я думаю, логичнее средствами мускуля фильтравать данные, регулярками, а то, как-то криво получается - держать в бд копию "чистого "текста.

-~{}~ 06.08.09 10:29:

Или в сфинксе чего добавить)
 

DiMA

php.spb.ru
Команда форума
держать копию - не нужно
а только дать на индексирование и стереть
 

Активист

Активист
Команда форума
Добавил в индекс
index pages
{
source = pages

path = /Web/var/et.web.local/httpdocs/sphinx/data/pages.db
docinfo = extern
morphology = stem_en, stem_ru
html_strip = 1
min_word_len = 2
charset_type = sbcs
charset_table = 0..9, A..Z->a..z, _, a..z
}
таже фигня
 
Сверху