2010-02-23 9 views
7

Obecnie próbuję opracować podstawowe wyszukiwanie pełnotekstowe dla mojej witryny, i zauważyłem, że niektóre słowa, takie jak "dotyczące" są wymienione jako stopwords dla pełnotekstowych wyszukiwań MySQL. Nie przeszkadza mi to w tej chwili, ponieważ osoby szukające danego newsa niekoniecznie będą wyszukiwały słowa "dotyczące" (ale na pewno nie mogę mówić za wszystkich!). Miałem jednak nadzieję, że ktoś tutaj może mnie oświecić na temat uzasadnienia posiadania listy przerwań. Dzięki!MySQL Fulltext Stopwords Rationale

Dla wyjaśnienia: Używam MyIsam do mojego pełnego tekstu tabeli. Hasła to słowa, których MySQL nie będzie indeksował (dla dowolnego indeksu pełnotekstowego). Jak zauważono w komentarzu do tego pytania, istnieje pełna lista słów kończących się bez żadnego wyjaśnienia. Chciałbym tylko wiedzieć, czy istnieje uzasadnienie słów "oni".

+0

Czy chcesz używać mySQL do wyszukiwania? Czy nie byłbyś szczęśliwszy w realizacji czegoś innego? – Layke

+0

@Laykes Mogę być szczęśliwszy przy użyciu innej struktury. Rozwijam się bardzo ostrożnie, ponieważ nie mam kontroli nad serwerem, na którym pracuję. Nie potrzebuję też zaawansowanego wyszukiwania mojej witryny. Tak czy inaczej, nadal jestem ciekawa listy stopów. –

+1

Dziwne, nigdy nie wiedziałem o stopwords - tutaj jest pełna lista, ale bez wyjaśnienia: http://dev.mysql.com/doc/refman/5.1/en/fulltext-stopwords.html –

Odpowiedz

8

Słowa kończące to zwykłe słowa w języku angielskim. W większości przypadków wyniki wyszukiwania będą bardziej trafne - a Twoje indeksy będą mniejsze i szybsze - jeśli nie indeksujesz tych słów.

Możesz edytować listę słów zatrzymania, używając zmiennej ft_stopword_file (lub ustawić ją na '', aby indeksować wszystkie słowa tak długo lub dłużej, jak ft_min_word_len), jeśli jest to lepiej dopasowane do twoich potrzeb. Możesz również zmienić minimalną indeksowaną długość słowa, używając zmiennej ft_min_word_len, która istnieje z tego samego powodu.

+0

Dzięki za wgląd! –

Powiązane problemy