Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / Расширенный Поиск подстроки / 25 сообщений из 102, страница 1 из 5
08.10.2019, 17:01
    #39873511
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Вечер добрый.

Как расширить значение поиска подстроки в строке
К примеру "поиск машины тоета" находит именно эту строку. Но если пользователь набрал: "оиск ашины тоет" (заметьте я специально пропустил некоторые буквы с начала и конца слов) то результат будет нулевым. Использую следующее:

If(subject.toString().toLowerCase().contained(charSequence))

Конечно можно использовать внутри условия некий условный цикл с перебором и придумывать алгоритм , но если есть "скоростное" решение. зачем заново велосипед придумывать.
...
Рейтинг: 0 / 0
08.10.2019, 17:17
    #39873519
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
...
Рейтинг: 0 / 0
08.10.2019, 17:18
    #39873520
Расширенный Поиск подстроки
soundex не поможет?
...
Рейтинг: 0 / 0
08.10.2019, 17:34
    #39873528
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Zafar ZК примеру "поиск машины тоета" находит именно эту строку. Но если пользователь набрал: "оиск ашины тоет" (заметьте я специально пропустил некоторые буквы с начала и конца слов) то результат будет нулевым. Использую следующее:вообще это поиск - в базе, там всё решено.
...
Рейтинг: 0 / 0
08.10.2019, 21:29
    #39873623
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Пришлось написать маленький алгоритм используя разбивку текста на слова (split) или же можно было сделать по другому?
...
Рейтинг: 0 / 0
08.10.2019, 21:30
    #39873625
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Пришлось написать маленький алгоритм используя разбивку текста на слова (split) или же можно было сделать по другому?
...
Рейтинг: 0 / 0
08.10.2019, 21:30
    #39873626
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Пришлось написать маленький алгоритм используя разбивку текста на слова (split) или же можно было сделать по другому?
...
Рейтинг: 0 / 0
08.10.2019, 21:31
    #39873627
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Пришлось написать маленький алгоритм используя разбивку текста на слова (split) или же можно было сделать по другому?
...
Рейтинг: 0 / 0
08.10.2019, 21:31
    #39873628
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Пришлось написать маленький алгоритм используя разбивку текста на слова (split) или же можно было сделать по другому?
...
Рейтинг: 0 / 0
08.10.2019, 21:32
    #39873630
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Пришлось написать маленький алгоритм используя разбивку текста на слова (split) или же можно было сделать по другому?
...
Рейтинг: 0 / 0
08.10.2019, 21:39
    #39873633
Zafar Z
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Мои извинения отправлял с телефона. Надеюсь админы удалят повторные сообщения .
...
Рейтинг: 0 / 0
08.10.2019, 21:41
    #39873634
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Zafar Z,

Твоя задача звучит как нечеткий текстовый поиск.

Ключевые слова: soundex, metaphone, bigram analyze, text index.

Гугли. Находи.

То что ты накодил - это туфта. Не обижайся за правду.
...
Рейтинг: 0 / 0
08.10.2019, 21:51
    #39873638
vas0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
maytonZafar Z,

Твоя задача звучит как нечеткий текстовый поиск.

Ключевые слова: soundex, metaphone, bigram analyze, text index.

Гугли. Находи.

То что ты накодил - это туфта. Не обижайся за правду. fuzzy search
...
Рейтинг: 0 / 0
08.10.2019, 22:04
    #39873642
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Вы конечно все правы, но есть ненулевая вероятность того, что ему достаточно like
...
Рейтинг: 0 / 0
09.10.2019, 00:07
    #39873677
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
chpashaно есть ненулевая вероятность того, что ему достаточно likeвероятность близка к 1,
такой
Zafar Z"оиск ашины тоет"
возможен с like, но это в базе.
странно искать так в java, это очень долго..., да и количество записей ограничено
...
Рейтинг: 0 / 0
09.10.2019, 07:16
    #39873708
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
вадя,

Like не является аналогом fuzzy - поиска.
...
Рейтинг: 0 / 0
09.10.2019, 09:00
    #39873741
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
1) Soundex в java (это совсем жлобский вариант)

http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/language/Soundex.html

но это поиски заточенные на английский. Как будет с кириллицей ХЗ надо тестить.

+Metaphone
http://commons.apache.org/proper/commons-codec/apidocs/org/apache/commons/codec/language/DoubleMetaphone.html

2) Apache Lucene (надо самому всё кодить)

https://lucene.apache.org/

(здесь я буду Кеп очевидность потому что в Джава реально ЛЮБЫЕ текстовые поиски в конечном счете
приходят к Апач Люсин)

3) ELK (коробочное решение но надо быть намного архитектором чтобы правильно всё собрать) и главное
поменьше платить провайдеру.

https://www.elastic.co/what-is/elk-stack
...
Рейтинг: 0 / 0
09.10.2019, 09:02
    #39873743
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
вот у меня есть данные по времени поиск в mysql при помощи like & like &...
в 28 000 и 10 000 000 записях. а есть ли у кого подобный данные для java?
...
Рейтинг: 0 / 0
09.10.2019, 09:35
    #39873762
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
вадявот у меня есть данные по времени поиск в mysql при помощи like & like &...
в 28 000 и 10 000 000 записях. а есть ли у кого подобный данные для java?
Типо ты сам не из java))
...
Рейтинг: 0 / 0
09.10.2019, 09:57
    #39873776
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Ну like это просто аналог substr, по 99% использований.

Поэтому если юзер тайпает "мос гор бол" имея в виду Московская Гордская Больница то чтобы
такой поиск работал нужна предобработка исходных данных для того чтоб они были подходящими
для индекса. Опять-же разбить на лексемы и проиндексировать каждую отдельно. Как - миллион
технологий есть но все они являются просто подмножеством fuzzy поиска.
...
Рейтинг: 0 / 0
09.10.2019, 10:36
    #39873804
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
PetroNotC SharpТипо ты сам не из java))типо есть спецы и круче
maytonПоэтому если юзер тайпает "мос гор бол" имея в виду Московская Гордская Больница то чтобы
такой поиск работал нужна предобработка исходных данных для того чтоб они были подходящими
для индекса.вот тут есть интересное сравнение (опять таки на mysql)
если 5.7+ поиск в 10 000 000 длился 30 сек, то в 8.+ 4 сек (это когда вводится заведомо не существующее, т.е. поиск по все таблице)
maytonНу like это просто аналог substr, по 99% использований.
действительно, тогда такое "оиск ашины тоет" надо разбить на 3 substr и объединить по &
...
Рейтинг: 0 / 0
09.10.2019, 10:40
    #39873807
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
вадя, при чем тут MySQL ?

Афтор пишет в форум Java. Логичным будет предлагать ему решение в контексте.
...
Рейтинг: 0 / 0
09.10.2019, 10:50
    #39873813
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
maytonвадя, при чем тут MySQL ?

Афтор пишет в форум Java. Логичным будет предлагать ему решение в контексте.мне интересна причина постановки такой задачи на java и поэтому как вариант для сравнения - mysql.
судя по примеру поиска число записей у тс не маленькое. насколько оправдан такой поиск?
...
Рейтинг: 0 / 0
09.10.2019, 10:56
    #39873816
PetroNotC Sharp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
вадя,
Например в фирме только java разработчики
...
Рейтинг: 0 / 0
09.10.2019, 10:59
    #39873819
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Расширенный Поиск подстроки
Неохота обсуждать MySQL пока автор не подтвердит что его такое решение тоже устроит.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Расширенный Поиск подстроки / 25 сообщений из 102, страница 1 из 5
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]