четверг, 10 февраля 2011 г.

Couchdb и couchdb-lucene

В последнее время все больше и больше говорят о NoSQL решениях для хранения данных. Вот мне пришлось поработать с таким решением от Apache - Couchdb. Ее сильной стороной является очень быстрая выборка данных. Из слабых сторон можно отметить сортировку только по ключу. Отсортировать записи по произвольному полю к сожалению не возможно. Как решение этой проблемы пришлось использовать Couchdb-lucene. Она запускается отдельным процессом и индексирует содержимое Couchdb. Cocuchdb-lucene не делает выборку по ключам она выполняет полнотекстовый поиск по запросу позволяя отсортировать записи по нужному полю. В нашем проекте из этих 2-х решений получилась довольно неплохая связка. Хотя конечно хотелось бы чтобы не очень сложные запросы из SQL БД поддерживались и здесь.

пятница, 12 февраля 2010 г.

Русские символы в UTF-8

После поиска по запросу стала задача о выделении совпадений с искомой строкой. Кодировка на сайте UTF-8. С латинскими символами не возникло никаких проблем, stripos и str_ireplace работали замечательно. Но как только появлялись русские символы сразу начинались проблемы. Сначала заметил что функции стали как-бы регистрозависимые. Решил использовать strtolower для перевода всего в строчные символы. Это не помогло. при отладке увидел что strtolower не переводит русские символы в нижний регистр. Погуглив по интернету прочел что строковые функции php не очень (это мягко сказано) дружат с кириллицей в кодировке UTF-8. Перевод из UTF-8 в cp1251 тоже ничего не принес!!! Осталось только решение использовать регулярные выражения несмотря на то что они работают дольше строковых функций php. Используя модификатор i избавился от зависимости от регистра, потом нашел второй модификатор (о котором почему-то не везде упоминают) u. Он означает что шаблон поиска(замены) следует рассматривать как UTF-8. Благодаря этим 2 модификаторам и функциям preg_match и preg_replace сильно упростил себе жизнь и экономию времени в будущем.(Хотя на поиски решения пришлось потратить несколько часов:-))
Для себя понял что имея дело с кириллицей надо использовать регулярные выражения и не париться по поводу регистров и всего прочего.

вторник, 17 ноября 2009 г.

Первое сообщение

Это мое первое сообщение в блоге. Я по своему типу не блоггер, но почему-то очень хочеться писать. Кто сможет объяснить причину?