Объединение всех текстовых полей в одно поле поиска? - PullRequest
0 голосов
/ 29 июня 2010

Обычно этот запрос можно найти в файле sphinx.conf:

sql_query = SELECT id,text_field1,text_field2,text_field3 FROM table_name

Будет ли большая разница, если я объединю все поля в одно текстовое поле с возможностью поиска?

sql_query = SELECT id, CONCAT(text_field1,text_field2,text_field3) as searchable_text FROM table_name

Какие преимущества имеет одно над другим?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 06 июля 2010

Я думаю, что в любом случае все в порядке ... однако Sphinx может фокусировать запросы на определенных полях (см. примеры синтаксиса расширенных запросов ). Если вы объедините все столбцы в одно поле, вы потеряете эту способность.

Вы также потеряете способность взвешивать некоторые поля выше, чем другие.

0 голосов
/ 06 октября 2010

CONCAT (text_field1, text_field2, text_field3) неверно используйте CONCAT (text_field1, '', text_field2, '', text_field3)

но лучше разрешить индексировать отдельные поля

поиск возвращает тот же результат, но при необходимости вы можете выбрать один из списков

'@ text_field2 foo'

...