Новый поиск по форуму

 

Fakir

BlueSkyDreamer
★★★★☆
Собственный поиск базы иногда к словоформе очень чувствителен.
По укороченному корню, бывает, и вовсе не находит. Типа, наберёшь "гражда" - не будет вообще ничего, допишешь буковку - "граждан": бац, с десяток появился (данный пример от балды, но с чем-то такого рода неоднократно сталкивался).
 3.6.33.6.3
+
-
edit
 

Balancer

администратор
★★★★★
Fakir> По укороченному корню, бывает, и вовсе не находит. Типа, наберёшь "гражда" - не будет вообще ничего

Потому что он ищет не по подстроке, а по стеммингу. Упрощённой форме отбрасывания окончаний. Не полноценная морфология, поэтому затрагивает часто лишнего, но это лучше точного поиска.

Fakir> допишешь буковку - "граждан": бац, с десяток появился (данный пример от балды, но с чем-то такого рода неоднократно сталкивался).

Стемминг разный. "Гражда" редуцируется до "гражд" (сравни "вражда", "вражде", "враждой" -> "вражд"). А "граждан" воспринимается уже как редуцированная форма от "гражданин", "граждане", "гражданский" и т.п.
 
RU sam7 #21.05.2013 21:13  @Валентин_НН#20.05.2013 11:17
+
-
edit
 

sam7

координатор
★★★★☆
Это глюк или неработающая функция?
Задаю поиск на Морском по слову Саяны, всюду, отмечаю "точное соответствие".
Выдало посты, содержащие:
СА
САУ
вѣса
санках
колёса
Нас­сау
с­па­са­тель­ных
опа-саясь
са­мо­обо­ро­ны
Пролистал три страницы из найденных 29, дальше не стал.
Можно сделать, чтобы искало то, что спрашивают?
 10.010.0

Balancer

администратор
★★★★★
sam7> Это глюк или неработающая функция?

«Это не баг, это фича». Морфологический поиск в подобных системах обычно очень упрощённый и использует стемминг — отбрасывание всех похожих на окончания и суффиксы частей. «поиск» -> «поиск», «поисковый» -> «поиск».

Для аббревиатур, типа «САУ» такой подход не работает. Ну, или можно считать, что принимает это слово винительный падеж слова «са». «Кто — са, кого — сау».

sam7> Задаю поиск на Морском по слову Саяны, всюду, отмечаю "точное соответствие"

Это поиск не по отсутствию морфологии, а по точному соответствию фразы. В смысле подряд идущих слов. Переделал и расширил сейчас поиск, добавил возможность двоичного и расширенного поиска.

sam7> СА
sam7> САУ
sam7> санках

Как я уже и писал, проблема стемминга.

sam7> вѣса

Вот это — забавно. Поисковый движок не считает «ѣ» за букву и выбрасывает. Соответственно в поиск идёт «в са».

sam7> колёса

А вот это уже, кажется, мой баг. Для индексов по заголовкам я «ё» в список допустимых букв добавил, а для постингов — видимо нет. Сейчас прописал, но переиндексироваться будет долго. Надо будет потом проверить.

sam7> Нас­сау
sam7> с­па­са­тель­ных
sam7> са­мо­обо­ро­ны

Это непонятно. Надо будет разобраться. Не должны находитьсяю

sam7> опа-саясь

Тут всё понятно. Два слова: «опа» и «саясь». Второе и находит.

sam7> Можно сделать, чтобы искало то, что спрашивают?

Часа два сейчас угрохал на поиск того, можно ли отключить стемминг при запросе. Теоретически должен отключаться при расширенном запросе в формате «=САУ». Но на практике — не работает. То ли я что-то не то запрашиваю, то ли баг в движке.

Есть тупой выход — составить два комплекта индексов, один со стеммингом, другой без. Но для этого, по-хорошему, надо полностью переделать структуру индексов и переписать поиск.
 26.0.1410.6326.0.1410.63
+
-
edit
 

Kuznets

Клерк-старожил
★☆
Balancer> Для аббревиатур, типа «САУ» такой подход не работает.

так он не "сау" а "саяны" искал. я попробовал - мне тоже какую-то ерунду выдал ) или это так работает парсинг типа "са-яны"(?)
при этом в заголовке вообще стоит ссылка "Balancer.Ru » Инструменты » поиск » форель"(???)
 20.020.0
+
-
edit
 

Balancer

администратор
★★★★★
Kuznets> так он не "сау" а "саяны" искал

Вот пишешь, пишешь, а как об стенку горох. Не важно, какая словоформа базовая. Важно, что после стемминга и от первого, и от второго останется только «са».

«Высмеяны» -> «Высме»
«Саяны» -> «Са»
«Дуру» -> «Дур»
«Сау» — «Са»

Kuznets> при этом в заголовке вообще стоит ссылка "Balancer.Ru » Инструменты » поиск » форель"(???)

Вот это непонятно:



Открыл тему на форуме поискового движка: В расширенных запросах не отключается стемминг. | Sphinx

Посмотрим, что подскажут. Если не лечится, придётся делать два комплекта индексов.
 27.0.1453.9327.0.1453.93
+
-
edit
 

dmirg78

координатор
★★★★☆
Поиск выдаёт не все имеющиеся результаты. Искал по номеру проекта "1241"
Среди найденного нет как минимум вот этого:
ракетные катера проекта 12411 "Молния"
Прикреплённые файлы:
1241.jpg (скачать) [994x489, 113 кБ]
 
 
Мой адрес - не дом и не улица. Мой адрес - Империя Зла! :)  16.016.0
+
+1
-
edit
 

Balancer

администратор
★★★★★
1241 и 12411 — это совершенно разные с точки зрения поиска слова.

Поиск идёт не по подстроке, а по целым словам с учётом русского и английского стемминга (имитация морфологии).
 27.0.1453.11027.0.1453.110
+
-
edit
 

dmirg78

координатор
★★★★☆
Balancer> 1241 и 12411 — это совершенно разные с точки зрения поиска слова.
Balancer> Поиск идёт не по подстроке

Спасибо, буду теперь знать.
Мой адрес - не дом и не улица. Мой адрес - Империя Зла! :)  16.016.0

Bod

координатор
★★★★☆
Balancer> 1241 и 12411 — это совершенно разные с точки зрения поиска слова.
Balancer> Поиск идёт не по подстроке, а по целым словам с учётом русского и английского стемминга (имитация морфологии).

Логично было бы предположить, что первое - это подмножество второго :) К слову, так: "1241?" - тоже не хочет искать.

Кстати о поиске. Всё стеснялся обратиться. Когда-то я искал информацию по "Су-27". С тех пор база как то запомнила этот запрос и он так и находится в строке поиска. Не страшно, в принципе, но раздражает. При каждом поске приходится вначале это удалять. И даже при поиске какого-нибудь другого слова - "Су-27" тут же "возвращается"..



Это не проблема кэша браузера. Т.к. проявляется на разных браузерах и разных компьютерах. Можно как то очистить строку поиска?
 24.024.0

Balancer

администратор
★★★★★
Bod> Логично было бы предположить, что первое - это подмножество второго :)

Вопрос технических возможностей. Искать простым перебором по 5Гб текстов форума — нереально. Каждый запрос будет занимать десятки минут :) Поэтому в отдельной базе хранится матрица привязок цифровых идентификаторов отдельных слов и объектов их содержащих.

Google тоже, например, не позволяет искать по подстроке. Только целым словом.

Bod> К слову, так: "1241?" - тоже не хочет искать.

Да. Метасимволы в запросах не поддерживаются.

Bod> Кстати о поиске. Всё стеснялся обратиться. Когда-то я искал информацию по "Су-27". С тех пор база как то запомнила этот запрос и он так и находится в строке поиска.

Это не она запомнила, это с самого начала так было сделано, ещё когда первый вариант поиска вводился. Просто как пример пользователю, как запросы вводить. Тогда многие этого не знали. Так традиция и осталась :) По идее, наверное, надо убрать и/или оформить плейсхолдер (текст, которые исчезает, когда в поле поиска тыкаешься).
 2525
+
+1
-
edit
 

Balancer

администратор
★★★★★
Теперь, если в запросе есть символы «&» или «|» («и» и «или», соответственно), то результат автоматически переключается на бинарный поиск. Например, запрос «(америка | США | USA ) & (флот | navy)» найдёт всё, что содержит «америка или США или USA» и «флот или navy».
 3434
RU Серокой #30.11.2014 21:12
+
-
edit
 

Серокой

координатор
★★★★
Ром, а почему поиск по слову вокзал не нашёл эту тему: Вокзалы ?
И вообще, поиск по слову "вокзал" и "вокзалы" выдаёт непересекающиеся результаты?
Больше не раскалятся ваши колосники. Мамонты пятилеток сбили свои клыки. ©  
BG tsonyo #30.11.2014 21:20  @Серокой#30.11.2014 21:12
+
-
edit
 

tsonyo

старожил
★★★☆
Серокой> И вообще, поиск по слову

Поисковиком не нашел тему "Доктор, откуда у вас такие картинки" :D
Сломался :(
 39.0.2171.7139.0.2171.71
RU Balancer #02.12.2014 01:09  @Серокой#30.11.2014 21:12
+
-
edit
 

Balancer

администратор
★★★★★
Серокой> И вообще, поиск по слову "вокзал" и "вокзалы" выдаёт непересекающиеся результаты?

Забавно. Видимо, стемминг на этом слове лажает. В поисковой системе работает не честная русская морфология, она очень сложна и без многомегабайтных словарей не работает. А стемминг — отбрасывание окончаний слова, похожих на суффиксы/приставки. Но на некоторых словах лажает. Чаще ситуация обратная, неодинаковые слова считаются словоформами одного и того же, а тут, видимо, случай, когда стемминг прямо не срабатывает. Увы, в стороннем движке подкрутить сам не смогу, разве что прописать явно в виде исключений в список синонимов :)
 39.0.2171.7139.0.2171.71

sam7

координатор
★★★★☆
Balancer>
Понятно.Но это неудобством назвать нельзя, just wait.

А по старой дискуссии забыл, неадекватный поиск по некоторым словам, типа "Саяны", неисправим на нынешнем движке?
 34.034.0
+
+1
-
edit
 

Balancer

администратор
★★★★★
sam7> А по старой дискуссии забыл, неадекватный поиск по некоторым словам, типа "Саяны", неисправим на нынешнем движке?

Да, увы, при дефолтовом поиске пока никак. Но в поиске появилась возможность задать режим поиска. При расширенном поиске и при добавлении к слову приставки «=» происходит точный поиск словоформы, без морфологии/стемминга. Так можно искать аббревиатуры:

пример «=САУ»

пример «=Саяны»

Также в расширенном поиске поддерживается бинарная логика (вертикальная палка, «|» — это ИЛИ), т.е. можно вручную задавать искомые словоформы, например:

Пример «=Саяны | =Саянах | =Саян»
 39.0.2171.9539.0.2171.95

sam7

координатор
★★★★☆
Balancer> Да, увы, при дефолтовом поиске пока никак. Но в поиске появилась возможность задать режим поиска. При расширенном поиске и при добавлении к слову приставки «=» происходит точный поиск словоформы, без морфологии/стемминга.

Не понял "но".

Т.е. нужно просто задать расширенный поиск и добавить перед искомым = и все?
Аналогично, как в гугле взять в кавычки?

Почему "но", если это решает проблему? Или не все так однозначно?
 34.034.0
+
+1
-
edit
 

Balancer

администратор
★★★★★
sam7> Т.е. нужно просто задать расширенный поиск и добавить перед искомым = и все?

Если перед словом стоит знак «=», то оно ищется как есть, без модификаций. Подсветки в результате поиска это не касается, только самого поиска.

sam7> Почему "но", если это решает проблему? Или не все так однозначно?

Это решает проблему только отчасти. Как минимум, приходится перебирать разные склонения :)
 39.0.2171.9539.0.2171.95

sam7

координатор
★★★★☆
Balancer> Это решает проблему только отчасти. Как минимум, приходится перебирать разные склонения :)
Теперь понятно, но это уже большой прогресс.
Ищется то, что спросил, а не то, о чем комп подумал.
Спасибо.
 34.034.0
Последние действия над темой

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru