|
|
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
Здрасте снова. Есть 2 таблички, первая - это индекс всех файлов, 1 запись - 1 файл, вторая - это все слова которые встречаються в файле (word) и сколько раз слово встретилось в документе (weight): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Связь по file_index.id, key_index.id_index, один к многим. Нужно найти все файлы (files), искать по полю word (может быть несколько слов в строке запроса, также разные условия между этими словами (AND, OR)) и отсортировать по weight DESC, т.е. чем больше слов в файле, тем выше. Да и если несколько слов для поиска, то нужно учитывать суммарный вес этих слов, а потом ORDER BY weight DESC ,вот. Как подойти к этому, MySQL 4.1.7-max-log, PHP 4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 17:06 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
А fulltext индекс тебе не подойдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 17:46 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
дело не в скорости, доло в моделировании самого запроса для выборки ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 17:52 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
честно пытался сказать что-нибудь полезное, но так и смог понять в чем же собственно суть проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2004, 18:58 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
читай раздел 12.6 Full-Text Search долго и внимательно. Match уже может выдавать степень сходства списка слов со строкой. Там в комментах показана возможность сортировки по релевантности: Код: plaintext 1. 2. ma X mo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 16:48 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
а... эээ... ну я понял, что тебе надо. точно, в чём проблема? ты хочешь всю процедуру запихнуть в один запрос? Не выйдет. ma X mo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 17:43 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
для начала, как ты собираешься считать вес? если выполнение условия pred1 даёт вес weight1, а pred2 - weight2, то какой вес даёт выполнение условий (pred1 AND pred2) и (pred1 OR pred2)? ma X mo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 17:51 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
Спасибо за ответы ... Я тоже прохожу к выводу что буду юзать полнотекстный поиск MySQlя, так можно побороть релевантность. >>то какой вес даёт выполнение условий (pred1 AND pred2) и (pred1 OR pred2)? здесь я думал при условии AND сумму весов обоих слов, а при OR брать наибольшее из возможных ... А вот если нужно учитывать расстояни между словами по которым идет поиск, например чтоб между словами может быть не более 5 слов .... ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2004, 18:30 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
И еще, в этом запросе как происходит непосредственно поиск и сортировка, ищеться по MATCH('Content') AGAINST('+keyword1 +keyword2' IN BOOLEAN MODE) ??? Код: plaintext 1. 2. 3. 4. Разве так можно делать, или все таки MATCH(...) AGAINST (...) должны быть одинаковые везде ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2004, 11:56 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
crumbЯ тоже прохожу к выводу что буду юзать полнотекстный поиск MySQlя, так можно побороть релевантность.а что, уже не хочешь сделать свой поиск? crumbя думал при условии AND сумму весов обоих слов, а при OR брать наибольшее из возможных ...почитай про оператор IF, думаю, можно будет переделывать оригинальный запрос чем-нить вроде регулярного выражения в набор условий для MySQL. crumbА вот если нужно учитывать расстояни между словами по которым идет поиск, например чтоб между словами может быть не более 5 слов .... ?в принципе у тебя уже есть position, поэтому расстояние между словами можно мерять в этих позишнах. Насчёт сортировки по релевантности - хз, если честно. Поэкспериментируй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2004, 16:45 |
|
||
|
поиск с сортировкой по весу слова
|
|||
|---|---|---|---|
|
#18+
Можно конечно изобретать велосипед, но если это уже реализовано, и довольно неплохо .... мне главный критерий это релевантность найденного, уж больно много докуметов собралось. Позицию между словами теперь уже хочеться учитывать в поиске средствами базы :) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2004, 10:00 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=32798580&tid=1854579]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
164ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 444ms |

| 0 / 0 |
