• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Индекс базы данных

  • Автор темы doc
  • Дата начала
D

doc

Можно ли как-нибудь программно получить свойсва индекса базы данных. Я знаю что есть свойство NotesDatabase.FTIndexFrequency, но мне нужны еще те опции которые можно описывать при создании этого индекса методом NotesDatabase.createFTIndex()

FTINDEX_ALL_BREAKS (4) to index sentence and paragraph breaks
FTINDEX_ATTACHED_BIN_FILES (16) to index attached files (binary)
FTINDEX_ATTACHED_FILES (1) to index attached files (raw text)
FTINDEX_CASE_SENSITIVE (8) to enable case-sensitive searches
FTINDEX_ENCRYPTED_FIELDS (2) to index encrypted fields

Задача вообще состоит в том, чтобы проверить текущий индекс порядка 1000 почтовых баз и если он отличается от требуемых настроек илии вообще отсутсвует, то создать его.
Как это можно реализовать?
 
A

allex

На базе этого примера взять переменные Database.FTINDEX_ALL_BREAKS ...
и по ним проверить

На Lotusscript таких свойств нет

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Пример кода</div></div><div class="sp-body"><div class="sp-content">
Код:
import lotus.domino.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {

try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

// (Your code goes here) 
Database db = agentContext.getCurrentDatabase();
int options = Database.FTINDEX_ALL_BREAKS +
Database.FTINDEX_CASE_SENSITIVE;
if (db.isFTIndexed())
{
db.createFTIndex(options, true);
System.out.println("Database index recreated");
}
else
{
db.createFTIndex(options, false);
System.out.println("New database index created");
}

} catch(Exception e) {
e.printStackTrace();
}
}
}
 
H

hosm

в этом коде пересоздается в любом случае...
а как-то считать настройки и проверить вариант: "если он отличается от требуемых настроек" ?
смотреть в сторону DXL/API?

Добавлено:
На базе этого примера взять переменные Database.FTINDEX_ALL_BREAKS ...
и по ним проверить

На Lotusscript таких свойств нет
это константы, для скрипта они есть - топикстартер их приводит выше.
за пример - спасибо.
но проверки на лотусскрипте/яве того, что индекс есть именно с нужными автору параметрами, я лично не нашла.
 
D

doc

Этот пример кода из хелпа по лотусу.
 
N

nvyush

Посмотрел СиАПИ. Аналогично — прочитать установленные параметры фт-индекса функций нет.
 
A

allex

Дописать вот этот кусок и получим результат

System.out.println(Database.FTINDEX_ALL_BREAKS);


<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вот пример работы</div></div><div class="sp-body"><div class="sp-content">

<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Вот то что присили</div></div><div class="sp-body"><div class="sp-content">http://img6.imageshack.us/img6/3664/ft1c.jpg
 
H

hosm

Вот то что присили
ой ли? просили не узнать значения числовых констант, описывающих свойства, а помочь в решении задачи (какие свойства узнать, Вы указали правильно):
Можно ли как-нибудь программно получить свойсва индекса базы данных.
...
Задача вообще состоит в том, чтобы проверить текущий индекс порядка 1000 почтовых баз и если он отличается от требуемых настроек или вообще отсутствует, то создать его.
сейчас вижу код создания (если нет) или пересоздания с параметрами (если есть) фт-индекса и вывода констант, которые можно использовать при задании фт-индекса.
не обижайтесь, но код получения и сравнения текущих Index Settings для БД с фт-индексом, отображаемых на закладке Full text св-в БД, я не вижу...
 
N

nvyush

Может эта информация хранится в к-либо поле дизайн-документа Icon? Например, $Flags - вполне подходящая кандидатура.
 
H

hosm

возможно. но что попадалось ранее на глаза про $Flags в Icon - именно изменения свойств БД в ней (+это же по-русски), а про фт не видела.
Вот Нотеспик выдает только факт индексирования, без детализации: (в Db info) options FTIndex
 
N

nvyush

Где-то Лотус должен хранить информацию об индексе, по крайней мере в свойствах базы данных эта информация отображается. Может это пишется в к-либо документ служебной БД сервера, а не в саму базу?

Добавлено
Поэкспериментировал с локальной базой в части добавления/удаления индекса и его параметров, контролируя дату/время изменения файлов. При добавлении индекса дата изменения файла БД не изменялась, но добавлялась папка с именем <имя БД>.ft с кучей файлов. Самому анализировать лень, но может топикстартеру данная инфа поможет.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!