Виталий Бормотов (bormvit) wrote,
Виталий Бормотов
bormvit

Нетривиальные сценарии при поиске

Думал о некоторых вариантах при поиске с фильтрами в каких-нибудь системах, например, товаров в магазине или людей в соцсети.

Первая идея: включать пустые значения. Я ищу Ивана Петрова и знаю, что он родился в 1975 году. Я ввожу все эти параметры. Тривиальный поиск покажет всех Иванов Петровых, которые указали 1975 год рождения. Более умный поиск должен включить и тех, кто не указал год рождения, а, возможно, также и тех (с ремаркой), кто родился в 1974 или 1976: возможно, я знал возраст и текущий год, получив 1975 вычитанием, и не учел (или не знал), был ли в этом году день рождения (1976 проверяется, чтобы компенсировать возможную неверную поправку, которую я сделал).

Идея номер 1,5, более простая: сделать отдельный вариант для пустого значения. В тривиальном случае, если я не указал фильтр по году, никакой фильтрации нет. Умный поиск должен дать мне возможность поставить галочку, по которой мне бы вывелись только те, у кого год не указан.

Вторая идея: указание релевантности без фильтрации. Я ищу Петра Иванова, который позиционирует себя как ахааравист. Я ввожу это имя в поиск и "ахааравизм" в поле "религиозные взгляды". Тривиальный поиск применил бы оба эти фильтра; я бы увидел его или никого (он мог и не ввести ничего или написать что-нибудь другое в это поле). Более умный поиск вывел бы мне всех Петров Ивановых, но если бы среди них нашлись какие-нибудь ахаарависты, он бы вывел их первыми.

Вторая идея необязательна (я могу сделать два поиск), но с ней удобнее. Если идея номер 1,5 реализована, то первая необязательна (тоже можно сделать два поиска), но с ней удобнее (но если нет ни первой, ни полуторной, то подобный поиск технически невозможен). Чем больше критериев, тем больше пользы было бы от такого умного поиска.

В идеале интерфейс позволяет мне явно выбирать, ищу ли я тех, у кого указан 1975, или всех, у кого указан либо он, либо ничего не указано, но не что-то другое, аналогично для второй идеи. На худой конец я должен просто понимать, какой алгоритм используется, даже если не могу выбрать сам. Но обычно нет и этого, есть просто фильтры, и только по выдаче я могу догадываться, какого рода гибкость в них заложена.

Это не должно таким оставаться.
Tags: интерфейсы, программирование, проектирование, техника
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment