Строка поиска: "DRM 06P"
В базе есть такая запись: 'Бла бла бла DRM 06 P'
если искать "DRM 06 P", то находит без проблем, но пользователи могут вводить в поиск артикул с пробелами или без
или как в примере в одном месте пробел есть в другом нет
Получается должен искать, например по таким запросам:
1. бла бла DRM 06 P
2. бла бла DRM 06P
3. бла бла DRM06P
source mainSourse
{
type = mysql
sql_host = localhost
sql_user = root
sql_pass =
sql_db = test
sql_port = 3306 # optional, default is 3306
sql_query_pre = SET NAMES utf8
}
source testSearch : mainSourse
{
sql_query= SELECT bt_search_tags.ID as id, bt_search_tags.content AS content FROM bt_search_tags;
#type of group fields
#sql_field_string = id
sql_field_string = content
}
index content
{
source = testSearch
path = C:/sphinx/data/testSearch/testSearch
morphology = stem_en, stem_ru, soundex
min_word_len = 1
charset_type = utf-8
charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+451, U+451
blend_chars = &, ., +, U+23
min_infix_len = 2
enable_star = 1
index_exact_words = 1
html_strip = 1
wordforms = C:/sphinx/data/wordforms.txt
}
$sth = $pdo->prepare("SELECT id, content, WEIGHT() as w FROM content WHERE MATCH('@content {$q}') LIMIT 1000 OPTION ranker = expr('sum(4*lcs+100/(min_hit_pos)+bm25)')");
$sth->execute(array('21'));
$array = $sth->fetchAll(PDO::FETCH_ASSOC);