2

Я хотел бы знать, работает ли двигатель Sphinx с любыми разделителями (например, запятыми и периодами в обычном MySQL). Мой вопрос исходит из желания, а не для их использования вообще, но чтобы избежать их или, по крайней мере, не вступать в конфликт при выполнении операций MATCH с поиском FULLTEXT, поскольку у меня есть проблемы, связанные с ними в MySQL по умолчанию, и я предпочитает не принуждать заменять эти разделители любыми другими персонажами, чтобы обеспечить хороший набор результатов.Sphinx - разделители

Извините, если я говорю что-то глупое, но у меня нет опыта с Sphinx или другими дополнительными (?) Поисковыми системами.

Чтобы дать вам пример, если выполнить поиск с

"Passat 2.0 TDI" 

MySQL по умолчанию будет определить период, в данном случае в качестве разделителя и с «2» и «0» слишком коротки будут считаться словами по умолчанию, результаты будут немного испорчены.

С лёгкостью справиться с Sphinx (или другой поисковой системой)? Я открыт для предложений.

Это для большого проекта, возможно, более 500 000 возможных записей (не тривиально вообще).

Cheers!

ответ

1

Вы можете эффективно контролировать, какие символы являются разделителями, определяя charset table конкретного sphinx index.

Если вы исключили символ из таблицы символов, он эффективно действует как разделитель. Если вы укажете его в таблице charset (даже пробелы как U + 0020), он больше не будет действовать как разделитель и будет частью ваших токенных строк.

Каждый индекс (который использует один или несколько sphinx data sources) может иметь другую таблицу символов для гибкости.

NB: Если вы хотите однословные слова, вы можете указать min_word_len каждого индекса сфинкса.

+0

спасибо за ответ. Я уже понял это и выбрал другое решение, но это в значительной степени то, что вы сказали :) – yoda 2010-12-22 22:53:27

0

Это, вероятно, лучший раздел the documentation для чтения. Как сфинкс является полнотекстовый двигатель в первую очередь это весьма перестраиваемых о том, как он обрабатывает фразы, а также, как вы передаете их.

+0

Это не отвечает на мой вопрос. – yoda 2010-12-17 15:05:02

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