Вот моя конфигурация поиска sphinx (sphinxsearch_0.9.9-6_amd64):
index FULL
{
charset_type = utf-8
source = FULL
path = /var/sphinx/data/Full
docinfo = extern
mlock = 0
min_stemming_len = 1
min_prefix_len = 1
min_word_len = 1
html_strip = 1
index_exact_words = 1
}
searchd
{
listen = 192.168.2.3
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 3
client_timeout = 60
max_children = 30
pid_file = /var/run/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
mva_updates_pool = 1M
max_packet_size = 8M
max_filters = 256
max_filter_values = 4096
}
Я использую php в качестве клиента
$sphinx_client->SetServer('localhost', 9312);
$sphinx_client->SetConnectTimeout(1);
$sphinx_client->SetArrayResult(true);
$sphinx_client->setRankingMode(SPH_RANK_WORDCOUNT);
$sphinx_client->SetMatchMode(SPH_MATCH_EXTENDED2);
if ($mode == 'all') {
$sphinx_client->SetSortMode(SPH_SORT_RELEVANCE, 'category');
} else {
$sphinx_client->setFilter('category', array($this->_filter_category), FALSE);
}
$sphinx_client->SetLimits(0, $this->_limit);
$results = $sphinx_client->Query('"^'.$query.'$"', 'FULL');
например, у меня есть эти имена в индексе: 1. Алекс 2. Ален 3. Джордж 4. A 5. G
::: Когда я пытаюсь найти простую 1 символьную строку «A», я получаю Ален /Alex / A и т. Д.
Как выполнить поиск по длине строки, чтобы я мог отображать их в правильном порядке, например: A / Alen / Alex ...
Я также получаю "ПРЕДУПРЕЖДЕНИЕ: index 'FULL': без морфологии, index_exact_words = 1 не имеет никакого эффекта, игнорируя "
С наилучшими пожеланиями