|
Поиска запросом без лишних символов | ☑ | ||
---|---|---|---|---|
0
picom
14.05.15
✎
17:10
|
В запросе поиск по артикулам номенклатуры
Например A10-301 Q Как получить этот артикул в запросе, если хотим выполнить поиск по A10301Q? |
|||
1
Ненавижу 1С
гуру
14.05.15
✎
17:13
|
определить множество "лишних символов" реально?
|
|||
2
picom
14.05.15
✎
17:18
|
(1) -, пробел, _
|
|||
3
DirecTwiX
14.05.15
✎
17:51
|
хранить в карточке номенклатуры артикул без лишних символов
|
|||
4
picom
14.05.15
✎
17:54
|
(3) еще есть варианты?
|
|||
5
DirecTwiX
14.05.15
✎
17:56
|
Между всех символом воткнуть %, использовать ПОДОБНО, плюс небольшая постобраюотка)
|
|||
6
picom
14.05.15
✎
18:08
|
(5)A10%301%Q ?
|
|||
7
picom
14.05.15
✎
18:21
|
Asmody напиши мне решение
Ненавижу 1С тоже дай еще намек |
|||
8
Aceforg
14.05.15
✎
18:25
|
Как вариант, выгрузить все артикулы и пройтись регуляркой.
|
|||
9
picom
14.05.15
✎
18:32
|
Самое красивое решение пока (5)
|
|||
10
Lama12
14.05.15
✎
18:34
|
(0) А глючный полнотекстовый поиск использовать нет желания?
Можно и самостоятельно предварительно создать таблицу со всеми вариантами написания артикула. Потом загнать его во временную таблицу. Ну а с временной таблицей поработать в запросе. Хотя те-же яйца в профиль что и полнотекстовый поиск. |
|||
11
Lama12
14.05.15
✎
18:36
|
Либо можно на основании строки поиска создать все множество вариантов "опечаток", и искать значения на вхождение в синтезированное множество. Хы :-)
|
|||
12
Lama12
14.05.15
✎
18:38
|
(11) + Например в приведенном примере, множество комбинаций из исходной строки и лишних символов будет примерно 3^6 = 729. Не так уж и много.
|
|||
13
Lama12
14.05.15
✎
18:41
|
12+ Нет. Ошибся... 3^7
|
|||
14
picom
14.05.15
✎
18:43
|
Самое красивое решение пока (5) 2
|
|||
15
GANR
14.05.15
✎
18:49
|
(14) Прямой SQL-запрос ))). И будет счастье.
|
|||
16
Garykom
гуру
14.05.15
✎
18:52
|
Нечеткое сравнение/поиск строк придуманы специально для таких случаев...
|
|||
17
DirecTwiX
14.05.15
✎
18:52
|
(10) Жёстко)
Для слова длины N и M лишних символов разлчных вариантов будет (M+1)^(N-1) (14) Ты только по производительности потом отпиши, если решишь реализовывать) |
|||
18
Garykom
гуру
14.05.15
✎
18:54
|
(17) если вопрос в производительности то хеширование...
|
|||
19
Lama12
14.05.15
✎
18:54
|
(14) Распечатать всю номенклатуру. Лиски с гуидами элементов и артикулами раздать студентам. За нахождения у себя на листке нужного артикула - кормить студента. Он вбивает гуид в консоль, и в отчете производится поиск номенклатуры.
А чего? Вон господин Фейнман так расчеты по ядерной бомбе делал, а тут всего лишь поиск :) |
|||
20
DirecTwiX
14.05.15
✎
18:55
|
(18) Вопрос в 1С)
(13) Три символа + пустой. |
|||
21
Lama12
14.05.15
✎
18:56
|
(20) А ну да. Пустой не учел.
|
|||
22
picom
14.05.15
✎
19:02
|
(21) (20) указывая количество вероятных комбинаций в данной ветке считаете что теория вероятности пригодилась в жизни (в данном случае)?
|
|||
23
Lama12
14.05.15
✎
19:03
|
(22) Это комбинаторика. Мне пригождалась и не раз. Вариант из (12) вполне реализуем.
|
|||
24
picom
14.05.15
✎
19:05
|
(23) правда, в данной реализации задачи начали бы применять комбинаторику?
|
|||
25
Lama12
14.05.15
✎
19:11
|
(24) А почему нет? Я не вижу всю задачу, скорее всего использовал бы полнотекстовый поиск. Но если уж приспичило бы, то мне такой вариант нравится больше чем (5). Это для разовой операции. Если же это будет работать постоянно, то сделал бы регистр сведений в котором сделал бы соответствие номенклатуры и артикла без лишних знаков. Потом поиск по этому регистру. И стандартные объекты не поменял и поиск ускорил. Регистр можно заполнять подпиской.
|
|||
26
Lama12
14.05.15
✎
19:12
|
25+ чем не нравится (5) сказать не могу :) Просто по ощущениям.
|
|||
27
picom
14.05.15
✎
19:23
|
(25) в силу свей неосведомленности не могу оценить вариант с полнотекстовым поиском, но кода наверняка больше, чем в (5), но обязательно проработаю этот вариант, спасибо
|
|||
28
Garykom
гуру
14.05.15
✎
19:32
|
(27) есть более простое но менее надежное решение
хотя хз точно, но не быстрее явно можно найти все артикулы в которые входят все символы из строки поиска т.е. нужно найти артикул А-Б-В, по строке поиска АБВ ищем пересечения артикулов по каждому символу, т.е. чтобы он в нем был "артикулы с А" ∩ "артикулы с Б" ∩ "артикулы с В" |
|||
29
DirecTwiX
14.05.15
✎
19:33
|
(22) Пригодилась хотя бы в том, что можно понять, что кодить (12) смысла не имеет. Для этого достаточно азов.
(23) 4^7 считал после 3^6?) |
|||
30
Lama12
14.05.15
✎
19:42
|
(29) Упс... неа не считал :) Но красивая величина вышла. Мда... тогда да... (5). Иначе на генерацию вариантов уйдет много времени.
|
|||
31
Garykom
гуру
14.05.15
✎
19:46
|
Может по (28) прикинете? Там банально на мой взгляд от длины строки поиска линейно... :)
|
|||
32
DirecTwiX
14.05.15
✎
21:02
|
(31) Это же память дополнительная нужна, да и конфу с поддержки снимать :D
|
|||
33
Garykom
гуру
14.05.15
✎
21:26
|
(32) не понял? (28) это же не метод "подготовить заранее индексы для поиска" который (25)
а "объединение кучи простых запросов на выборку одинаковых" т.е. внешний отчет можно по памяти тоже не понял, обычные "запросы в цикле" практически вот быстродействие хз |
|||
34
mistеr
14.05.15
✎
21:46
|
(14) В чем красота? Самое медленное, пользователей не устроит.
|
|||
35
RomanYS
14.05.15
✎
22:24
|
самое правильное решение в (4)
|
|||
36
DirecTwiX
14.05.15
✎
22:32
|
(33) Значит, я тебе неправильно понял. Тогда вариант, конечно. Что-то вроде (16) будет) Интересно проверить)
(34) В простоте и оригинальности =* Вообще, (5) я для поржать сказал) Но для небольших артикулов это и правда может отлично отрабатывать. Вопрос в критической длине) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |