Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Java |
![]() ![]() |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 4 5 вперед Ctrl→ все |
вадя Member Откуда: Екатеринбург Сообщений: 18678 |
|
||
9 окт 19, 10:59 [21990167] Ответить | Цитировать Сообщить модератору |
вадя Member Откуда: Екатеринбург Сообщений: 18678 |
|
||
9 окт 19, 11:00 [21990168] Ответить | Цитировать Сообщить модератору |
вадя Member Откуда: Екатеринбург Сообщений: 18678 |
|
||||
9 окт 19, 11:01 [21990169] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
вадя, У тебя тоже цветочный) |
9 окт 19, 11:11 [21990183] Ответить | Цитировать Сообщить модератору |
вадя Member Откуда: Екатеринбург Сообщений: 18678 |
|
||
9 окт 19, 11:12 [21990186] Ответить | Цитировать Сообщить модератору |
Zafar Z Member Откуда: Сообщений: 132 |
Искренне благодарю всех участвующих. Знаю что мой алгоритм абсолютная туфта так этот тип поиска срабатывает только в 20% из 100. Честно говоря пока не было времени но обязательно рассмотрю все ваши советы не исключая ни кого. Ещё раз искренне человеческое спасибо всем за ответы. Постараюсь ещё раз попытаться правильно поставить не вопрос а проблему поиска в базе. Одна запись состоит из целого текста , если скопировать этот текст то получается стандартный формат страницы ms word В 200 страниц. К примеру если все слова оиск ашины тоет находится в ОДНОМ ПРЕДЛОЖЕНИИ или хотя бы в том же АБЗАЦЕ то результат поиска идеально подходит для пользователя. Но если ОЕТА найдена в первой странице а АШИНА в 120 странице то поиск опять найдет ту запись так это ОДНА ЗАПИСЬ, хотя эти два слова не будут связанны друг с другом со значением и не будет иметь смысла для 'ищущего' пользователя, их объединяет только одна запись в базе данных. |
10 окт 19, 05:01 [21990977] Ответить | Цитировать Сообщить модератору |
Zafar Z Member Откуда: Сообщений: 132 |
Кстати на скорость поиска не жалуюсь даже на старых андроид устройствах поиск продолжается не долго. Использую SQLite. |
10 окт 19, 05:11 [21990978] Ответить | Цитировать Сообщить модератору |
mad_nazgul Member Откуда: Сообщений: 5609 |
Zafar Z, Если что есть lucene. ;-) |
10 окт 19, 05:58 [21990980] Ответить | Цитировать Сообщить модератору |
Zafar Z Member Откуда: Сообщений: 132 |
Дорогие участвующие всем всем огромное спасибо, начал тестирование с Lucene и о да чудо! Классная штука! Другим тоже буду советовать, то что надо, в будущем другие тоже постараюсь протестировать как время свободное найдется, но пока остановлюсь на чудо люценке! Всем удачи. |
17 окт 19, 08:38 [21996034] Ответить | Цитировать Сообщить модератору |
asv79 Member Откуда: Тверь Сообщений: 3090 |
ты со своей люценкой по шапке получишь от тимлида в твоем случае используют оператор LIKE поиск по заданным параметрам осущестляется на стороне базы ты же хочешь вытащить из базы все и прогнать через эту шляпу?ты в своем уме дядя? |
17 окт 19, 10:07 [21996119] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 50489 |
Это нормальный юзкейс для толстых текстовых поисков. Так работает Google. Индексирует асинхронно и обновляет специализированные струкуры данных которые работают для поисков токенизацией и лемматизацией текстов. Обычно LIKE в БД не дает возможности делать сложные поиски быстро. Пример с "%МОС%ГОР%БОЛ%" выключает индекс БД и будет работать full-scan операция. А она убивает производительность. Вот и бизнес выбирая между быстрым асинхронныим и текстовым поиском и медленным синхронным поиском по БД, решает использовать Lucene(Elastic Stack), Sphinx, e.t.c. Время отклика - решает. Будет ли клиент сёрчить миллиард записей в таблице через LIKE или какой-то умный поиск по деревьям текстового поиска с шардингом. Есть еще вариант - использовать модули текстового поиска БД но они обычно ограниченные в функционале и плохо поддерживают локаль. Грубо говоря там все хорошо когда английский текст. Кириллица обычно не работает. Или надо что-то крутить и вертеть на уровне глубокого знания этого модуля. |
||
17 окт 19, 10:22 [21996141] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
asv79, Если у него обучение, это одно. Если боевой проект, то конечно нужно профит смотреть. |
17 окт 19, 10:43 [21996178] Ответить | Цитировать Сообщить модератору |
вадя Member Откуда: Екатеринбург Сообщений: 18678 |
смотря в каком объёме искать. |
17 окт 19, 11:04 [21996232] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 50489 |
Это должно исходить от заказчика. Сколько секунд или минут он согласен искать "Московскую Городскую Больницу" в справочнике? Этот вопрос должен стоять во главе топика. Всё остальное - не имеет значения. Заказчик должен быть happy. Если он - не happy то все ваши архитектуры и умные технологии не имеют никакого значения. Выкинуть на свалку. |
17 окт 19, 11:15 [21996259] Ответить | Цитировать Сообщить модератору |
asv79 Member Откуда: Тверь Сообщений: 3090 |
PetroNotC Sharp, если таблица до млн записей как мне скзаали никаких проблем использвать LIKE а далее уже нужно индексы использовать в любом случае это лучше отдать на откуп БД,как бы там есть инструменты для этого |
17 окт 19, 12:27 [21996395] Ответить | Цитировать Сообщить модератору |
asv79 Member Откуда: Тверь Сообщений: 3090 |
[quot mayton][ я сомневаюсь что автор пишет второй гугол. а как работает этот люцен-он же не в базе ищет?тоесть сначала нужно достать все из базы -и куда то засунуть-потом это дело передать в люцене? |
17 окт 19, 12:31 [21996405] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
asv79, Ну вот пример. Мне нужны из логов все АБЗАЦЫ с WARNING. Что тогда? |
17 окт 19, 12:34 [21996410] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
asv79, У меня админка с выводом лога сервера. В логе 10 000 строк. Поэтому на андроиде в планшете виснет.)))) |
17 окт 19, 12:36 [21996415] Ответить | Цитировать Сообщить модератору |
asv79 Member Откуда: Тверь Сообщений: 3090 |
а ты логи в базу пишешь?весьма странное решение |
||
17 окт 19, 12:44 [21996425] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 50489 |
Почитай про ELK в части LogStash. Там есть коробочное решение для быстрого поиска по логам. https://www.elastic.co/products/logstash |
||
17 окт 19, 12:45 [21996427] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
Oracle в своём APEX все в базу пишет. Даже js. |
||
17 окт 19, 12:52 [21996447] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
mayton, OK Я же ленивый)) Пока ротацию поправил с 2 гигов по умолчанию на ежедневную)). В рыбе сервере 2 гига текста это же сколько строчек в логе!!! А мой планшет наверно всего 100 мегов свободно)) |
17 окт 19, 12:56 [21996453] Ответить | Цитировать Сообщить модератору |
mayton Member Откуда: loopback Сообщений: 50489 |
Зачем тебе тянуть логи на планшет? |
17 окт 19, 12:59 [21996455] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
Счас посмотрел. 10 000 строк 800 кБт. На компе открывает моментом в эксплорере. На планшете виснет. Там миниОпера. |
||
17 окт 19, 13:02 [21996464] Ответить | Цитировать Сообщить модератору |
PetroNotC Sharp Member Откуда: Сообщений: 7245 |
mayton, На компе я делаю Сохранить как... и на диск из оперы. Потом в notepad++ Там есть крутой поиск с "Пометить всё". Теперь все warning красным. |
17 окт 19, 13:07 [21996469] Ответить | Цитировать Сообщить модератору |
Топик располагается на нескольких страницах: ←Ctrl назад 1 [2] 3 4 5 вперед Ctrl→ все |
Все форумы / Java | ![]() |