Имя: Пароль:
1C
 
Полнотекстовый поиск. как найти Же?лов
0 Klesk666
 
10.01.17
18:31
допустим не помню, Жеглов или Жезлов или вообще Же-зе-лов, жизненная ситуация другая, но схожая, как?
1 Fragster
 
гуру
10.01.17
18:33
2 Fragster
 
гуру
10.01.17
18:36
Поиск с использованием группового символа – поддерживается только один символ «», и он должен быть в конце слова. То есть запрос «арх» найдет «архив», «археология»
3 Fragster
 
гуру
10.01.17
18:36
Нечеткий поиск слов с заданным количеством отличий от указанного в строке поиска.

Запрос «#Система» (эквивалентно запросу «Система#1») найдет «систама», «сивтема».

Запрос «Система#2» найдет «ситтама», «сеттема».

Только для полнотекстового поиска в данных!
4 Klesk666
 
10.01.17
18:44
(2) Же не ищет ни одного, ни второго
Же* не находит никого
5 Klesk666
 
10.01.17
18:45
"Же" не находит жеглова
6 Klesk666
 
10.01.17
18:46
Жеглов#2 не находит никого
7 Klesk666
 
10.01.17
18:48
Же*лов тоже пусто
8 Klesk666
 
10.01.17
18:51
//настроить параметры поиска
    мОбластьПоиска = Новый Массив;
    РазмерПорции = 200;
    СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(СтрокаПоиска, РазмерПорции);
    мОбластьПоиска.Добавить(Метаданные.Справочники.Партнеры);
    мОбластьПоиска.Добавить(Метаданные.Справочники.Контрагенты);
    мОбластьПоиска.Добавить(Метаданные.Справочники.КонтактныеЛицаПартнеров);
    мОбластьПоиска.Добавить(Метаданные.Справочники.ДоговорыКонтрагентов);
    СписокПоиска.ОбластьПоиска = мОбластьПоиска;

    СписокПоиска.ПерваяЧасть();
9 Klesk666
 
10.01.17
18:51
Индекс актуален
10 Klesk666
 
10.01.17
18:57
Вру, Же* пишет "слишком много результатов"
11 Klesk666
 
10.01.17
19:06
убрал ограничение это - повесил базу, как же искать?
12 Klesk666
 
10.01.17
19:07
отвисло, написало Же* ничего не найдено
13 Живой Ископаемый
 
10.01.17
23:55
а где ищешь? может поискать запросом с подобно к нужному полю определенных данных?
14 Живой Ископаемый
 
11.01.17
00:03
А, ну или сузить поиск "Же*лов"
15 Klesk666
 
11.01.17
00:08
(14) тоже пусто
где ищу в (8)
16 Живой Ископаемый
 
11.01.17
00:13
ВЫБРАТЬ * ИЗ
Справочники.Партнеры ГДЕ наименование подобно "Же%лов"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ * ИЗ
Справочники.Контрагенты ГДЕ наименование подобно "Же%лов"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ * ИЗ
Справочники.КонтактныеЛицаПартнеров ГДЕ наименование подобно "Же%лов"
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ * ИЗ
Справочники.ДоговорыКонтрагентов ГДЕ наименование подобно "Же%лов"
17 Живой Ископаемый
 
11.01.17
00:13
ну вернее не
ВЫБРАТЬ *
а
ВЫБРАТЬ ссылка, наименование
18 Живой Ископаемый
 
11.01.17
00:14
ну и возможно
"%Же%лов%"
19 Klesk666
 
11.01.17
00:16
это все понятно-работает, как быть с полнотекстовым поиском, которые используют пользователи
20 Живой Ископаемый
 
11.01.17
00:18
да без понятия.
он .уево параметризируем,
не стал бы его использовать для такого поиска
21 Maniac
 
11.01.17
00:19
Легко
22 Maniac
 
11.01.17
00:20
в поиске просто через пробел набираешь свои слоги

в запросе делаешь условия с приосединением указанных слогов (предвариательно помещая их в Массив)

с условие по каждому ПОДОБНО и соединением через И

Получишь все наименования в которых есть Же и Лов одновременно
23 Maniac
 
11.01.17
00:22
юзеру при этом не надо будет надирать дурацких символов каких то. и мозг себе колошматить.
тупо будет набирать слоги с пробелом и все.
Я у себя сделал такое в подборе номенклатуры, работает быстрее чем любой штатный и полнотекстовый
24 Klesk666
 
11.01.17
00:25
(23) а как же поиск по инн, почте, адресу? по справочнику контрагенты?
25 Maniac
 
11.01.17
00:27
(24) элементарно тоже
26 Maniac
 
11.01.17
00:27
Вот пример

МассивКлючевыхСлов = глРазложитьСтрокуВМассивПодстрок(КлючевыеСловаСтроки," ");
    УсловиеПолейВводаПоСтроке = "";    
    Для инд = 0 По КоличествоКлючевыхСлов - 1 Цикл
        СтрКлючевоеСлово = СокрЛП(МассивКлючевыхСлов[инд]);
                
        УсловиеПолейВводаПоСтроке = УсловиеПолейВводаПоСтроке + " И СпрНоменклатура."+СтрУсловиеПоля+" ПОДОБНО &ПодстрокаПоиска"+Строка(инд);    
            
        Запрос.УстановитьПараметр("ПодстрокаПоиска"+Строка(инд),"%"+СтрКлючевоеСлово+"%");
    КонецЦикла;
    
    ТекстЗапроса =
    "ВЫБРАТЬ
    |    СпрНоменклатура.Ссылка КАК Номенклатура,
    |    СпрНоменклатура.Наименование,
    |    СпрНоменклатура.Артикул,
    |    СпрНоменклатура.Родитель КАК ГруппаСправочника,
    |    СпрНоменклатура.Производитель КАК Производитель
    |ИЗ
    |    Справочник.Номенклатура КАК СпрНоменклатура
    |ГДЕ
    |    СпрНоменклатура.ЭтоГруппа = ЛОЖЬ";
    ТекстЗапроса = ТекстЗапроса + "
    |    "+УсловиеПолейВводаПоСтроке;
    ТекстЗапроса = ТекстЗапроса + "
    |
    |СГРУППИРОВАТЬ ПО
    |    СпрНоменклатура.Производитель,
    |    СпрНоменклатура.Родитель,
    |    СпрНоменклатура.Ссылка,
    |    СпрНоменклатура.Наименование,
    |    СпрНоменклатура.Артикул";                    
    
    Запрос.Текст = ТекстЗапроса;
27 Klesk666
 
11.01.17
00:27
не я могу свой поиск наваять по этим полям и справочникам с ПОДОБНО, но привык прежде чем отклонить стандартный функционал признать его неработающим, может я что не так делаю
28 Maniac
 
11.01.17
00:30
Если надо по куче поле искать - делаешь на морде выбор полей.

а воде просто
фигачишь переменную текстовую.

Например

СтрокаПоискаПоИНН = "";
Если ПоискПоИНН Тогда
Эту строку заполняем текстом что я привел выше.

В запросе опять же - если строка условия не пуста - тогда добавить эти условия с подобно для такого то поля поиска.
29 Maniac
 
11.01.17
00:34
(27) я тебе сразу говорю - типовой функционал неподвижный.
30 Живой Ископаемый
 
11.01.17
00:35
2(27) Ну а как ты оцениваешь функционал который тебе отвечает что слишком много результатов. Можешь ли ты управлять этим параметром?
31 Klesk666
 
11.01.17
00:43
(30) 1)я говорю "выдай все, я подожду пару часов" а он не выдает.
(28) а если на поддержке
(29) да, все больше в этом убеждаюсь, но почему никто это не признает и нет альтернатив, кстати а в последних релизах платформы не сдвигов в этом?
32 Живой Ископаемый
 
11.01.17
00:45
"а он не выдает. " ну вот и...