Cyrillic search engine

9 отговора 355 прегледа
#1

Cyrillic search engine

Iskam da popitam kak moga da napravia korekten search engine za bylgarski dokumenti, ako imam bylgarski i angliiski dokumenti i pri podavane na zaiavka kato rezultat mi se poiaviavat chasti ot angliiskite documenti, zashtoto dumite sydyrjashti se v tiah syotvetstwat na veche encode-nati bylgarski simvoli. Nujno li e da pretyrswam samo bylgarskite dokumenti, zashtoto mysql slaga pred tiah s po-goliam rating dumite ot angliiskite dokumenti.
Blagodaria predvaritelno.

Отговор
в отговор на petko_1 #2

Re: Cyrillic search engine

> mysql slaga pred tiah s po-goliam rating dumite ot angliiskite dokumenti.

Тази пък глупост от къде я измисли ?
> dumite sydyrjashti se v tiah syotvetstwat na veche encode-nati bylgarski simvoli
Кой ги е енкоднал ? И по какъв начин са енкоднати ?

Ако търсиш по кирилица и mysq ти е настроен коректно с cp 1251 не би трябвало да имаш проблеми

Е тук нищо няма:[линк]
Отговор
в отговор на ro6avia #3

Re: Cyrillic search engine

кажи какво имаш в предвид с това
>Ако търсиш по кирилица и mysq ти е настроен коректно с cp 1251 не би трябвало да имаш проблеми

от няколко дни се боря с 2 програми
за groupware и все тоя проблем че нещо не става с енкодинга.
Когато се въвеждат данни си е ок, но като се запише в базата и се потърси
излизат в друг енкодинг.
Например така аз Валент&#1080

В едната програма съм сложил default codepage win1251 w config.php-to

no wse taia. А и на апаха слагах различни defalt cp ama няма разлика.
Май нещо не се записват в mysql-a както трявба...

Press Ctrl-Alt-Del to continue ........
Отговор
в отговор на ro6avia #4

Re: Cyrillic search engine

1.Znachi kogato se tyrsi samo v bylgarski ili samo v angliiski dokumenti niama problem. Problema idva kogato se omeshat -> toest tyrsim sa syvpadenie na duma i v bg i v en documenti. Mysql po default izkarva s po-goliam rating syvpadenia na dumi v en documenti nezavisimo che tyrsenata duma ne syotvetstwa: toest tyrsim "риби" i mysql si go priema tozi string kato neshto si na angliiski i izvajda result(syotvetno ne tozi koito iskame).
2.Simvolite gi e encode-nal samiat browser za da gi predade ot search form-ata kym samoto tyrsene.
Izpolzvam cp-1251 kato encoding i pak se dyni.
3. Namerih funciata Mysql COLLATE -> sega s neia shte se mycha da smeniam vyzpriemaneto na charsetowe-te.

Отговор
в отговор на petko_1 #5

Re: Cyrillic search engine

В отговор на:

toest tyrsim "риби" i mysql si go priema tozi string kato neshto si na angliiski i izvajda result(syotvetno ne tozi koito iskame).



Ama ti seriozno li govori6?Iska6 da kaje6 4e MySQL priema dumata "АВТО" na bylgarski kato dumata "ABTO" s angliiski simvoli!Tova e nevyzmojno!Ne6to si obyrkal pri encoding-a!

Отговор
в отговор на Trecho #6

Re: Cyrillic search engine

Dumata АВТО ne se vyzpriema kato AVTO a kato neshto 'izmisleno', koeto obache obyrkva search-a kato vnasia greshni rezultati.
Po vyprosa s encoding-ite -> pravilni sa si.
Mislia che nai-nakraia namerih reshenie na problema: ako nqmame poddryjka na encoding cp1251 ot mysql i nqmame dostyp do servera to RESHENIETO E DA PREVEDEM INFORMACIATA V utf8 VARIANT. Taka query-tata na mysql-a ne se byrkat.
Kakvo da vi kaja pak dostignahme do dynoto na problema:)

Отговор
в отговор на petko_1 #7

Re: Cyrillic search engine

В отговор на:

Mysql po default izkarva s po-goliam rating syvpadenia na dumi v en documenti nezavisimo che tyrsenata duma ne syotvetstwa: toest tyrsim "риби" i mysql si go priema tozi string kato neshto si na angliiski i izvajda result(syotvetno ne tozi koito iskame).



ГЛУПОСТИ. MySQL и рейтинг -> това да не ти е yahoo или google ?

Ако нямаш възможност да си промениш charset-ите на MySQL сървера (3.х) или базата/таблицата (4.х) (които можеш да видиш с SHOW VARIABLES и видиш променлива character_set), тогава ти остава да работиш с бинарни/hex стойности.

MySQL реагира по странен за потребителя начин когато го карат да изпълнява инструкции, които не са му обяснени -> в твоя случай да търси по кирилица при условие, че не знае кирилицата. Тогава вероятноста да получиш странни резултати е много голяма.

Ако записваш в MySQL символите енкоднати с UTF-8 или нещо друго, прочети convert_cyr_string в PHP мануала.

Е тук нищо няма:[линк]
Отговор
в отговор на ro6avia #8

Re: Рошав прав е човека

Този път ти се изказа неподготвен
[линк]

For every row in the table, MATCH() returns a relevance value, that is, a similarity measure between the search string and the text in that row in the columns named in the MATCH() list.

When MATCH() is used in a WHERE clause (see example above) the rows returned are automatically sorted with highest relevance first. Relevance values are non-negative floating-point numbers. Zero relevance means no similarity. Relevance is computed based on the number of words in the row, the number of unique words in that row, the total number of words in the collection, and the number of documents (rows) that contain a particular word.

...

The next example shows how to retrieve the relevance values explicitly. As neither WHERE nor ORDER BY clauses are present, returned rows are not ordered.

mysql> SELECT id,MATCH (title,body) AGAINST ('Tutorial') FROM articles;
+----+-----------------------------------------+
| id | MATCH (title,body) AGAINST ('Tutorial') |
+----+-----------------------------------------+
| 1 | 0.64840710366884 |
| 2 | 0 |
| 3 | 0.66266459031789 |
| 4 | 0 |
| 5 | 0 |
| 6 | 0 |
+----+-----------------------------------------+
6 rows in set (0.00 sec)

За съжаление е прав и затова, че работи само на английски.

salle.online.bg/sig

Редактирано от salle на

Отговор
в отговор на salle #9

Re: Рошав прав е човека

А сефте, да не мислиш че ми е за първи път.

Но въпреки всичко не съм сигурен, че използва MATCH, а не like да кажем, поне не го е написал никъде, тъй че това е основната причина да съм се заблудил .

Е тук нищо няма:[линк]
Отговор
в отговор на petko_1 #10

Re: Cyrillic search engine

Blagodaria za support-a:)
Sega ima i drug varant poznat predi versiite 4.x na MySQL za osyshtestviavane na page ranking no stava vypros za edno izkustweno syzdavane na hash-tablici chiito danni po-kysno se oceniavat spriamo povtoriaemost na dumite. I makar tova da e po-mudno(otnemashto vreme) podobna e i ideiata zalojena v MATCH() varianta na MySQL. V sluchaia po-udobno za celi dokumenti da se izpolzwa MATCH() tyrsene, zashtoto otnema po-malko resursi v sravnenie s LIKE(). No ot svoia strana tyseneto s MATCH e po-striktno, i syshtestvuvat nesyotvetstwia mejdu resultatite polucheni pri search pattern systaven ot malki ili glavni bukwi. Podoben engine na tysene sym osyshtestvil v members.lycos.co.uk/newiaqua. Oshte ne e maximalno izchisten ot greshki, no tova e zaradi razlichnite encodingi polzvani ot potrebitelite. Ako iskate go poglednete.

Отговор