2014-10-19 2 views
0

У меня есть таблица базы данных, которая выглядит следующим образом т.е. адрес является свободным текстовым полем (я не проектировал его):Поиск адреса с помощью бесплатного текстового поля

5 records from the Address Table: 
1 The street 
2 Pine Street,Lincoln,Lincolnshire 
77 Drove Way,Grantham 
Drove Way Lincoln 
Some house on Ambleside 

У меня есть приложение, которое имеет адресное поле, которое является бесплатным текстом (опять же я его не проектировал). Я хочу, чтобы пользователь начал вводить адрес в поле адреса, а затем появлялся список потенциальных (надеюсь, только один). Я подумал о нескольких способах приблизиться к этому:

1) Use a LIKE statement e.g. select * FROM dbaddress where address like '%1 The Street%'. This seems like a bad idea. 
2) Free text search. I have not used this before. 

Что является «лучшим вариантом» для моих требований. Есть ли альтернативный подход?

ответ

0

У меня было что-то подобное раньше, и свободный текст был лучшим вариантом в моем случае. Если вы можете использовать LIKE 'abc%', который вы используете, индекс также является лучшим вариантом.

Для поля, такого как адрес, лучше начать поиск с самого начала.

В конце, в зависимости от ваших потребностей, Если бы я был вами, я бы выполнил оба запроса и сравнил их в плане выполнения.

Смежные вопросы