The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Поиск по нескольким ключам, !*! handler2006, 28-Фев-12, 16:58  [смотреть все]
Здравствуйте!
Имеем: массив структур, состоящих из нескольких полей (или просто таблица).
Задача: Выбрать первую удовлетворяющую условиям поиска записью Поиск осуществляется сразу по нескольким полям.
Все, что я нашел пока - это boost::multi_index_container, но он не позволяет делать выборку за дин раз - придется делать столько проходов, сколько критериев поиска
Спасибо.
Алексей
  • Поиск по нескольким ключам, !*! pavlinux, 22:42 , 02-Мрт-12 (1)
    > Задача: Выбрать первую удовлетворяющую условиям поиска записью

    Можно я, можно я,...

    Для того, чтоб выбрать первую удовлетворяющую условиям поиска записью,
    нужно выбрать первую удовлетворяющую условиям поиска записью.


    • Поиск по нескольким ключам, !*! handler2006, 12:44 , 03-Мрт-12 (2)
      Как вариант мне предложили использовать хеш полей - тогда поиск сводится к проверке только значения хеша записи.

      Мне же, с моим слабоумием, вообще сложно что-то представлять да и не за чем - задача сводится лишь к тому чтобы обойтись одной простой строчкой кода, неважно, какого рода и объема код она сгенерирует

      • Поиск по нескольким ключам, !*! pavlinux, 00:58 , 05-Мрт-12 (3)
        > Как вариант мне предложили использовать хеш полей - тогда поиск сводится к
        > проверке только значения хеша записи.

        Например матрица 100x100, для комбинации из 2-х элементов будет иметь 1000000 хэшей. :)


        • Поиск по нескольким ключам, !*! handler2006, 10:37 , 05-Мрт-12 (4)
          Вы меня немного неправильно поняли.
          Возможно я не совсем корректно употребил термин "хеш" в данном случае.
          Имеется ввиду  хранить сумму значений полей каждой записи, тогда достаточно будет только просуммировать (особым образом) поля записи и сравнить их с искомым
          • Поиск по нескольким ключам, !*! pavlinux, 23:15 , 05-Мрт-12 (5)
            >  Вы меня немного неправильно поняли.
            > Возможно я не совсем корректно употребил термин "хеш" в данном случае.
            > Имеется ввиду  хранить сумму значений полей каждой записи, тогда достаточно будет
            > только просуммировать (особым образом) поля записи и сравнить их с искомым

            1+2+3+4+5+6+7+8+9 = 45
            5+5+5+5+1+5+5+5+4 = 45
            ...

            Так можно хранить только числа Фибоначчи, ибо разложение итоговой суммы, в примере 45,
            на эти числа единично, т.е. уникально.

            2+5+7+12+19 = 45  

            ----

            Короче не заморачивайся, хэш - правильный выход.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру