Обработка MySQL Full Text Special Characters

Надеюсь, вы найдете это полезным!

.outer{
width:300px;
border-radius:10px;
border:4px solid #000;
background-color:green;
height:200px;
}
.outer .inner{
max-width:100%;
border-radius:0px 0px 10px 10px;
border:4px solid #000;
background-color:red;
height:80px;
}
<div class="outer">
<div class="inner"></div>
</div>

6
задан ejunker 14 November 2008 в 16:10
поделиться

2 ответа

Нет никакого способа сделать это в хорошем использовании полнотекстового поиска MySQL. То, что Вы делаете (заменяющий специальными символами с предопределенной строкой) является единственным способом сделать это.

Можно хотеть рассмотреть использование Поиска Сфинкса вместо этого. Это, по-видимому, поддерживает специальные символы выхода, и согласно всем отчетам значительно быстрее, чем полнотекстовый поиск по умолчанию.

5
ответ дан 10 December 2019 в 02:55
поделиться

MySQL довольно жесток в том, какие токены он игнорирует при построении полнотекстовых индексов. Я бы сказал, что там, где он встретил термин «C ++», он, вероятно, вычеркнет символы плюса, оставив только C, а затем проигнорирует это, потому что он слишком короткий. Вы, вероятно, могли бы настроить MySQL так, чтобы он включал однобуквенные слова, но он не оптимизирован для этого, и я сомневаюсь, что вы могли бы заставить его обрабатывать символы плюса так, как вы хотите.

Если вам нужна хорошая внутренняя поисковая машина, где вы можете настроить такие вещи, ознакомьтесь с Lucene , который был портирован на различные языки , включая PHP (в структуре Zend) .

Или, если вам нужно это больше для 'тегирования 'чем текстовый поиск, то что-то другое может быть более подходящим.

4
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: