From: Roman S. <rom...@re...> - 2008-07-28 16:05:14
|
Hello, Alex Alex Peshkov wrote: > On Saturday 19 July 2008 06:21, Nikolay Samofatov wrote: > >> Full-Text Search >> ~~~~~~~~~~~~ >> From Firebird project point of view, this is very experimental feature, >> which shows how complete working full-text-search can be implemented for >> Firebird. >> I ask project members to review it from the architectural standpoint. It >> is implemented as ESPs in Java. When the feature becomes architecturally >> stable, we may want to migrate it to Lucene C. >> > > Can you provide a small example - what is needed to use FTS on (for example) > column DOCCONTEXT of table DOCS? > > For using full text search feature a database should be all necessary special objects. For automatic creation of these objects for new databases it is necessary to specify path to an initialization script as a value of parameter InitScript in a configuration file of a server. Then this script will be carried out at creation of each new database. By default the name of a initialization script is init.sql, it is located in the root directory of a server. Certainly you can run this script manually for needed database. Example of FTS usage: Search on a one field of the one table. In the first, it is necessary to create an index: EXECUTE PROCEDURE FTS$CREATE_INDEX('TEST_INDEX', NULL, NULL); In the second, it is necessary to add a field in an index an index: EXECUTE PROCEDURE FTS$ADD_FIELD_TO_INDEX('TEST_INDEX', 'DOCS','DOCCONTEXT', 'Standard', NULL, NULL); After change of structure of an index, it is necessary to update the metadata of FTS: EXECUTE PROCEDURE FTS$APPLY_METADATA_CHANGES; Adding test data into the table: INSERT INTO DOCS(DOCCONTEXT) VALUES('fts test text'); To update index data it is necessary to refresh index: EXECUTE PROCEDURE FTS$REINDEX('TEST_INDEX'); For searching data in an index FTS$SEARCH procedure is used: SELECT FTS$SCOPE, FTS$RELATION, FTS$HIGHLIGHT from FTS$SEARCH('TEST_INDEX', NULL, 'fts_test_text', 100); More detail description of FTS is located on http://www.red-soft.biz/files/downloads/products/2.1_docs/fts_man.pdf (now in Russian only) or in docs directory of installed Red Database. >> Security features >> ~~~~~~~~~~~ >> The feature set aims to ensure complete coverage of ISO 27000 standard >> requirements which can be implemented by the database engine. >> There are similar projects for PostgreSQL (see SE-PosgreSQL), MySQL and >> commercial DBMS, but we hope our approach is much more comprehensive. >> > > I know that you have much enhanced authentication process. What protocol > number do you use now? How is it related with FB (and IB) protocol numbers? > The protocol number is 12 and is equal Firebird 2.5.Enhancing authentication process consists in implementation multi factor authentication. It's extention of Firebird trusted authentication process. Presence of isc_dpb_multi_factor_auth or isc_spb_multi_factor_auth (in case of service) initiates multifactor authentication process. So, client library from Firebird should work with Red Database 2.1. Client library from Red Database 2.1 also must work with Firebird if will not use isc_dpb_multi_factor_auth clumplet tag in isc_(attach | create)_database. I'll describe shortly used authentication process: After sending isc_dpb_multi_factor_auth client starts to transfer one by one authentication factor data: OS security context, password (by improvement than in Firebird protocol like CHAP), X.509 certificate. Transferring of one factor may take more than one transferring iteration, for example, in case with OS security context. However it's like trusted authentication of Firebird. There are so named secondary authentication factors such as retina scan and finger print. They are encrypted by a session key while transferring. Session key is generated while primary factors are transferred. I'm ready to explain it more detail. -- Best Regards, Roman Simakov Red Soft Corp. |