![]() |
|
Нужен совет по использованию полнотекстового поиска. | ☑ | ||
---|---|---|---|---|
0
tciban
28.07.16
✎
11:02
|
Уважаемые коллеги! Вопрос такой: беру из одной базы номенклатуру с наименованием например "Контроллер 8Gb FC 4 Port Host Interface Card".
В другой базе этот товар имеет наименование "8Gb FC 4 Port Host Interface Card". При попытке найти во второй базе полнотекстовым поиском с порогом нечеткости 50 ничего не нашло. Вероятно потому, что первое наименование больше - к нему добавлено слово "Контроллер". И как же быть? Вроде очевидно, что это одно и то же наименование, но как реализовать поиск? Идею откусывать первое слов предлагаю не обсуждать, она очевидна. Но слово может бытьи в конце и в середине или их будет два. Если я правильно понимаю проблема в том, что искомая фраза длинее. |
|||
1
vde69
28.07.16
✎
11:05
|
а полнотекстовый поиск настроен?
должны соблюдатся условия 1. поля поиска - иметь соотв. галки 2. индексы поиска должны регламентом обновлятся и перестраиватся |
|||
2
tciban
28.07.16
✎
11:06
|
Ну конечно настроен. И галки стоят и обновление индексов по расписанию. Я все тупенько из БСП взял :)
|
|||
3
tciban
28.07.16
✎
11:07
|
И галки вдумчиво раставлял, когда объекты делал
|
|||
4
tciban
28.07.16
✎
11:07
|
А что, оно все же должно находить большую фразу при поиске по меньшим?
|
|||
5
vde69
28.07.16
✎
11:09
|
значит не сильно "вдумчево", полнотекстовый прекрасно будет искать сабж.... только имей в виду там есть свой синтаксис который стоит почитать...
|
|||
6
DES
28.07.16
✎
11:17
|
полнотекстовый поиск работает в толстом клиенте ?
|
|||
7
tciban
28.07.16
✎
11:18
|
Т.е. искать должен, только я делаю что-то не так? Ну я то по простому искал, может в этом дело? Вот код поиска:
СписокПоиска = ПолнотекстовыйПоиск.СоздатьСписок(); СписокПоиска.СтрокаПоиска = Наименование; СписокПоиска.РазмерПорции = 3; СписокПоиска.ПолучатьОписание = Истина; СписокПоиска.ПорогНечеткости = 50; |
|||
8
tciban
28.07.16
✎
11:18
|
СписокПоиска.ПерваяЧасть();
Для К=0 По СписокПоиска.Количество()-1 Цикл Зн = СписокПоиска.Получить(К); КонецЦикла; |
|||
9
tciban
28.07.16
✎
11:19
|
Результат выполнения - СписокПоиска.Количество()=0. :(
|
|||
10
tciban
28.07.16
✎
11:21
|
Полнотекстовый поиск выполняется на сервере, т.к. процедура предназначена для регламентного задания. Конфа на УФна основе БСП 2.3.3.66, движок последнгего релиза. Отлажживаю в файловой версии, а вообще то база крутится под убунту на Postgre
|
|||
11
vde69
28.07.16
✎
11:38
|
Если ПолнотекстовыйПоиск.ПолучитьРежимПолнотекстовогоПоиска() <> РежимПолнотекстовогоПоиска.Разрешить Тогда
Возврат Результат; КонецЕсли; СтрокиПоиска = ПолучитьСтрокиДляПоиска(РазделАнализа); //УстановитьПривилегированныйРежим(Истина); //ПолнотекстовыйПоиск.УстановитьРежимПолнотекстовогоПоиска(РежимПолнотекстовогоПоиска.Разрешить); //УстановитьПривилегированныйРежим(Ложь); Для Каждого Стр из СтрокиПоиска Цикл Список = ПолнотекстовыйПоиск.СоздатьСписок(стр, 100); Список.ОбластьПоиска.Добавить(Метаданные.РегистрыСведений.Лоты); Список.ПерваяЧасть(); Для Каждого эл из Список Цикл Результат.Добавить(эл.Значение); КонецЦикла; Пока (Список.ПолноеКоличество() - Список.НачальнаяПозиция()) > Список.Количество() Цикл Список.СледующаяЧасть(); Для Каждого эл из Список Цикл Результат.Добавить(эл.Значение); КонецЦикла; КонецЦикла; КонецЦикла; |
|||
12
tciban
28.07.16
✎
14:57
|
(11) Таки что вы хотели этим сказать?
|
|||
13
vde69
28.07.16
✎
15:09
|
(12) первую строчку посмотри....
|
|||
14
tciban
28.07.16
✎
15:27
|
А остальное зачем?
|
|||
15
tciban
28.07.16
✎
15:29
|
И да, у меня включено. совпадающие строки находит. Так что это тут не при чем. :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |