Причины, почему селекторы на основе id не работают
Решения
$(document).ready();
.bind()
для jQuery. В старых версиях jQuery для этого было .live()
. Поиск и нормализация могут противоречить друг другу. Таким образом, вероятно, первая вещь состояла бы в том, чтобы получить некоторое "представление", которое показывает все поля, которые могут искаться как одна строка с единственным ключом, получая Вас резюме. затем можно бросить что-то как Lucene перед этим, чтобы дать Вам полнотекстовый индекс тех строк, способ, которым работы, Вы просите у этого "x" в этом представлении, и он возвращает Вам ключ. Это - отличное решение, и приезжайте рекомендуемые joel самостоятельно на подкасте в течение первых 2 месяцев IIRC.
Насколько я понимаю (и я - также кто-то, кто записал против ужасной унаследованной базы данных), нет такой вещи как динамические операторы Where. Это НЕ было решено.
Лично, я предпочитаю генерировать свои динамические поиски в коде. Делает тестирование удобным. Отметьте при создании запросов SQL в коде не конкатенируйте во вводе данных пользователем. Используйте свой @variables!
Единственная альтернатива должна использовать оператор COALESCE. Скажем, у Вас есть следующая таблица:
Users
-----------
Name nvarchar(20)
Nickname nvarchar(10)
и Вы хотите искать дополнительно имя или псевдоним. Следующий запрос сделает это:
SELECT Name, Nickname
FROM Users
WHERE
Name = COALESCE(@name, Name) AND
Nickname = COALESCE(@nick, Nickname)
Если Вы не хотите искать что-то, просто передайте в пустом указателе. Например, передача в "brian" для @name и пустом указателе для @nick приводит к следующему оцениваемому запросу:
SELECT Name, Nickname
FROM Users
WHERE
Name = 'brian' AND
Nickname = Nickname
Объединить оператор превращает пустой указатель в оценку идентификационных данных, которая всегда верна и не влияет где пункт.
Вам понадобится что-то вроде SphinxSearch (для MySQL) или Apache Lucene .
Как вы сказали в своем примере, давайте представим себе резюме который будет состоять из нескольких полей:
Таким образом, поиск слова во всех этих полях с WHERE быстро превращается в очень длинный запрос с несколькими СОЕДИНЕНИЯМИ.
Вместо этого вы можете изменить свою структуру ссылок и думать о целом резюме как что это за единый документ, и вы просто хотите выполнить поиск в указанном документе.
Именно здесь работают такие инструменты, как Sphinx Search. Они создают ПОЛНЫЙ ТЕКСТОВЫЙ индекс вашего «документа»