Проблема что в фио может быть только одно из составляющих
Решение:
Настройки на nodejs:
sphinx.SetMatchMode(SphinxClient.SPH_MATCH_EXTENDED2);
sphinx.SetRankingMode(SphinxClient.SPH_RANK_WORDCOUNT);
sphinx.SetSortMode(SphinxClient.SPH_SORT_EXTENDED, "@weight DESC");
Конфиг sphinx:
source source_test
{
type = pgsql
sql_query = SELECT id, fio FROM testTable
sql_attr_string = fio
}
index index_test
{
source = test
min_infix_len = 3
index_exact_words = 1
infix_fields = fio
charset_type = utf-8
}
и выполняем запрос:
//формируем строку вида "^иванов*" | "*иванов*" и делаем запрос
var name = "\"^" + req.params.name + "*\" | \"*" + req.params.name + "*\"";
sphinx.Query(name, function (err, result) {
...
});