Pull to refresh
404
0
Andrew Aksyonoff @shodan

User

Send message
Сообщают, что запись будет.
Про кворум — это оператор, который матчит документы с не менее, чем N словами из указанных (например «мама мыла раму»/2)

Про девушек — видимо стеммер не осиливает, можно пробовать добавить правило в словоформы, мапить форму «девушек» в стем (!) вручную.
Сам не знаю.
Надо пытать Firmbook-овцев, я только разместил... читаю доклад.
Дык, по указанному URL!
За этим, наверное, лучше не ко мне.
Те. C# я понимаю достаточно, чтобы суметь API портировать когда-нибудь.
Но еще не портировал во-1х плюс в бою не использую никак во-2х.
А в комментариях (к другим статьям) вроде как отмечались боевые .NET пользователи.
Для каждого отдельного индекса можно назначить свой словарь.
В пределах индекса выбирать нельзя, словарь ровно один.

Соотв-но для перемешанных данных я бы делал несколько источников и индексов.
И к каждому привязывал свой словарь.
Можно зацепить какой-нибудь украинский словарь, видимо.
Я сам никогда не делал, существуют ли словари, не знаю :(
Ну когда 10 запросов на страницу и миллионы страниц в сутки — бывает хочется быстрее иногда :)
Код весь наш, так что можем поговорить про другие режимы лицензирования.
sphinxsearch.com/contacts.html
Самые незаметные ошибки всегда на самом виду.
Поправил!!!
Проверил только что, меня по ссылка на SF Awards бросает прямо на голосование. Браузер FF 3.0.11
Ключевое слово «в моем случае» как раз.

Причем вполне понятно, что это за случай, и почему у Сфинкса «из коробки» не все гладко :)

Кстати, если статью читать внимательно, несложно добиться всего того же самого и на Сфинксе, в общем-то.

Другое дело, что на крохотных коллекциях это и не нужно, ага.
> заюзал майэскюэлевский поиск — для меня самое то оказалось.

:) Пока данные влазят в память, скорость не беспокоит, и поиск по уникальным словам — оно работает, да.
а) Есть в транке (смотреть payloads)
б) В длинных планах есть, в коротких нет. Если надо спешно, welcome to sphinxsearch.com/consulting.html
Как объяснить проще, чем «в версии 0.9.10 добавился как раз такой ранкер, называется sph04» я не знаю :(
Нужно, чтобы кто-нибудь еще объяснил тогда.

> Если можно это сделать без изучения алгорима ранкера B52

:) Можно, наверное.
Статья таки скорее для тех, кому интересно изучить потроха.
Как объяснить проще, чем «в версии 0.9.10 добавился как раз такой ранкер, называется sph04» я не знаю :(
Нужно, чтобы

Щаз пролью…

Вот как раз логика работа ранкеров такая.
Проблема в том, что если запрос встретился в том поле полностью, уже получается максимальный вес фразы.
Безотносительно длины самого поля, и факта полного совпадения поля (!) с запросом.
Так исторически сложилось вот.

В версии 0.9.8 факт совпадения всего поля (!) вообще нельзя установить, не хватает данных в индексе.
Технически можно только факт совпадение-в-начале установить и забустить.
Но нужно приписать новый ранкер.

В версии 0.9.9 (текущая бета) добавилось еще всякое.
Ранкеров не добавилось, зато добавились модификаторы ^ и $, и соотв-но флажок «конец поля» в индексе.
Но все еще нужно приписать новый ранкер.

В версии 0.9.10 (текущий транк) добавился (барабанная) дробь как раз такой ранкер.
Называется sph04 (полностью SPH_RANK_SPH04), бустит совпадения в начале поля и в конце поля.
Возможно, бэкпортнем в 0.9.9 тоже.

Без ранкера сделать что-то непросто, но в определенной мере тоже можно.
Убирать ручками пунктуацию и верхний регистр из поля и запроса, посчитать crc32 поля, сохранить атрибутом.
Затем ранжировать по @weight+if(fieldcrc==querycrc,1000,0)
Криво, знаю, но может и пригодится таки кому.
На следующей неделе собираюсь опередить со статьей про ранжирование.
Разве что в комментах МНОГО народу вдруг захочет про что-то другое.
:)
Ключики давно, очень давно.
А вот нужные для исправлений плюшки типа SetSelect только в 0.9.9 появились.

Information

Rating
Does not participate
Works in
Registered
Activity