Oracle Text missing words

I have researched and received a different number of results. Can anyone explain why?

Select * from table where upper (clobField) like ' % YEAR % ".

Select * from table where contains (clobField, '% a %', 1) > 0

When I perform the following search, I can see obvious CLOB which contain the required text, but is not returned to the oracle text search.

Select * from table where upper (clobField) like ' % YEAR % "and does not contain (clobField, '% a %', 1) > 0

I use a lexer base with all the default settings. Also, I can search on other words in the CLOB rejected that will come back them very well. Are the words that I found so far that I can't search on 'one' and 'who' and that's when I stopped in frustration. Thanks for any help!

First of all, by the way, if you're looking for a whole word or a token, you don't need to use the wildcard '%' with Oracle Text.

Second, text index Oracle using [url http://docs.oracle.com/cd/E11882_01/text.112/e24435/ind.htm#CIHCGIEA] lists of EMPTY words, for example http://docs.oracle.com/cd/E11882_01/text.112/e24436/astopsup.htm, which are intended to avoid indexing of low value words - the words you want normally to search. If you want to index these then you can disable the list of stopwords. Your indexes bigger of course.

Tags: Database

Similar Questions

  • The abbreviated word Oracle text query / name

    I am new to Oracle text so please excuse the simple question (probably). I want to be able to create a search that excludes (including?) special characters or spaces between the short name. I don't know if it's possible, but I would like to be able to return all results below if an interviewee in 'ABC' under one form or another.

    It would be something that I would add a thesaurus? In my view, there is a list of EMPTY words, but I don't know if it is the opposite of a list of empty words.

    Thanks in advance!

    Kind regards
    Rich

    set def off;
    
    drop table docs;
    
    CREATE TABLE docs (id NUMBER PRIMARY KEY, text VARCHAR2(200));
    
    INSERT INTO docs VALUES(1, 'ABC are my favorite letters.');
    INSERT INTO docs VALUES(2, 'My favorite letters are A,B,C');
    INSERT INTO docs VALUES(3, 'The best letters are A.B.C.');
    INSERT INTO docs VALUES(4, 'Three of the word letters are A-B-C.');
    INSERT INTO docs VALUES(5, 'A B C are great letters.');
    INSERT INTO docs VALUES(6, 'AB and C are easy letters to remember');
    INSERT INTO docs VALUES(7, 'What if we used A, B, & C?');
    
    commit;
    
    begin
    ctx_ddl.drop_preference('english_lexar');
    end;
    /
    
    begin
    ctx_ddl.create_preference('english_lexar', 'BASIC_LEXER');
    ctx_ddl.set_attribute('english_lexar', 'printjoins', '_-');
    ctx_ddl.set_attribute('english_lexar', 'skipjoins', '-.');
    --ctx_ddl.set_attribute ( 'english_lexar', 'index_themes', 'YES');
    ctx_ddl.set_attribute ( 'english_lexar', 'index_text', 'YES'); 
    ctx_ddl.set_attribute ( 'english_lexar', 'index_stems', 'SPANISH'); 
    ctx_ddl.set_attribute ( 'english_lexar', 'mixed_case', 'YES');
    ctx_ddl.set_attribute ( 'english_lexar', 'base_letter', 'YES');
    end;
    /
    
    begin
     ctx_ddl.drop_preference('STEM_FUZZY_PREF');
    end;
    /
    
    begin 
      ctx_ddl.create_preference('STEM_FUZZY_PREF', 'BASIC_WORDLIST'); 
      ctx_ddl.set_attribute('STEM_FUZZY_PREF','FUZZY_MATCH','ENGLISH');
      ctx_ddl.set_attribute('STEM_FUZZY_PREF','FUZZY_SCORE','0');
      ctx_ddl.set_attribute('STEM_FUZZY_PREF','FUZZY_NUMRESULTS','5000');
      ctx_ddl.set_attribute('STEM_FUZZY_PREF','SUBSTRING_INDEX','TRUE');
      ctx_ddl.set_attribute('STEM_FUZZY_PREF','PREFIX_INDEX','TRUE');
      ctx_ddl.set_attribute('STEM_FUZZY_PREF','STEMMER','ENGLISH');
    end; 
    /
    
    begin
     ctx_ddl.drop_preference('wildcard_pref');
    end;
    /
    
    begin 
        Ctx_Ddl.create_Preference('wildcard_pref', 'BASIC_WORDLIST'); 
        ctx_ddl.set_attribute('wildcard_pref', 'wildcard_maxterms', 100) ;
    end; 
    /
    
    DROP index myindex;
    
    create index myindex on docs (text) 
      indextype is ctxsys.context 
      parameters ( 'LEXER english_lexar Wordlist wildcard_pref' ); 
    
    EXEC CTX_DDL.SYNC_INDEX('myindex', '2M');
    
    SELECT SCORE(1), id, text FROM docs WHERE CONTAINS(text, 'ABC', 1) > 0;
    Maybe it's that my SQL statement is not taking advantage of the text options - that is to say I forget something obvious :)

    The indexes are by default case insensitive, so let's ignore that.

    You can wal-mart and wal * mart match Wal-Mart by setting "-" and "*" as characters SKIPJOINS. However, you cannot not wal mart walmart match, otherwise than by the use of the NDATA.

    NDATA seems to work - any variation of wal mart Walmart wal * mart and wal-mart manage to match the Wal-Mart and wal-mart. See the example:

    SQL> create table testcase (text varchar2(2000));
    Table created.
    
    SQL> insert into testcase values ('walmart');
    1 row created.
    
    SQL> insert into testcase values ('wal mart');
    1 row created.
    
    SQL> exec ctx_ddl.drop_section_group('tcsg')
    PL/SQL procedure successfully completed.
    
    SQL> exec ctx_ddl.create_section_group('tcsg', 'xml_section_group')
    PL/SQL procedure successfully completed.
    
    SQL> exec ctx_ddl.add_ndata_section('tcsg', 'nd', 'nd')
    PL/SQL procedure successfully completed.
    
    SQL> create index testcase_index on testcase(text)
      2  indextype is ctxsys.context
      3  parameters ('section group tcsg')
      4  /
    Index created.
    
    SQL> select * from testcase where contains (text, 'ndata(nd, wal mart)') > 0;
    
    TEXT
    --------------------------------------------------------------------------------
    walmart
    wal mart
    
    SQL> select * from testcase where contains (text, 'ndata(nd, wal-mart)') > 0;
    
    TEXT
    --------------------------------------------------------------------------------
    walmart
    wal mart
    
    SQL> select * from testcase where contains (text, 'ndata(nd, wal*mart)') > 0;
    
    TEXT
    --------------------------------------------------------------------------------
    walmart
    wal mart
    
    SQL> select * from testcase where contains (text, 'ndata(nd, walmart)') > 0;
    
    TEXT
    --------------------------------------------------------------------------------
    walmart
    wal mart
    

    Published by: Roger Ford on 21 June 2012 10:22

  • Error upgrading to 11g 3.0.1 to 3.1.2 - Missing Oracle Text

    I installed the edition 11g on Linux and APEX included with installation standard.

    The version shipped with 11g 3.0.1 and I wanted to update 3.1.2. I downloaded 3.1.2 RTO and run the apexins.sql script and got the following error.

    Application Express installation requires the database component Oracle Text. +

    How might the 3.0.1 install succeeded without the TEXT component installed?

    What should I do to move forward? Just install the Oracle text component?

    Thank you!

    Looks like this. Check out http://download.oracle.com/docs/cd/E10513_01/doc/install.310/e10496/pre_require.htm#CFHBDFEE

    See you soon,.
    Andy

  • The device icon and text missing in the imaging devices Manager

    The device icon and text missing in the imaging devices Manager

    I'm running MS Vista Ultimate.

    The imaging device icon and the wording are missing in Device Manager are missing. A device is listed in the box as installed missing icon.

    The other devices in Device Manager normally appear and I can compare what is supposed to be there for another computer running the same version of windows.

    However, the device will not work and will not reinstall.

    When you try to reinstall the device an error indicates that Setup does not work and to contact the manufacturer of the device.

    Yet once, however, this happens when I try to install any imaging device.

    I'm unable to locate information about the imaging devices in the registry.

    I think that some registry entries are missing.

    It is not the missing peripheral individual. This is the section in Device Manager.

    The image error is logged:

    "Windows didn't load setup." Contact your hardware vendor. »

    This happens with any device inaging of anyone.

    Hi henrymullersr

    What imaging device do you use?

    We can try a few steps and check if it helps you.

    Try to run the hardware and devices Troubleshooter: http://windows.microsoft.com/en-US/windows7/Open-the-Hardware-and-Devices-troubleshooter

    If the result of the Troubleshoot utility is negative, then reinstall the device. And also be sure to uninstall the previous contents of the device driver by running utility windows install cleanup:

    http://download.Microsoft.com/download/e/9/d/e9d80355-7ab4-45b8-80e8-983a48d5e1bd/msicuu2.exe

    Now follow the following steps:

    1. Save the Windows Installer Cleanup Utility package on your computer

    2. right click on the Windows Installer Cleanup Utility and run as administrator

    3. follow you prompt in the installation wizard. Once completed the installation, click on the Start button

    4. click on all programs. Click on Windows Install CleanUp Utility.

    5. click on the device driver (if on list) in the list of programs.

    6. click on Remove. Click OK

    7. click exit

    Restart the computer for the changes to take effect
     
    Then try to install the device driver and check the result: http://windows.microsoft.com/en-US/windows-vista/Install-a-USB-device

    After back and let us know if it helped to solve your problem.

    Thank you and best regards,

    R uma - Microsoft technical support.

    Visit our Microsoft answers feedback Forum and let us know what you think.

  • Oracle text index - unexpected behavior

    We have a SEARCH_TABLE (in Oracle 12.1.0.1.0) with a couple of files (actually about 10,000,000 records):

    ID ADDRESS

    1     | WIMPEL | 57. 9733BK | GRONINGEN |

    2     | JOHAN WILSSTRAAT | 7 ||| 1333PV | ALMERE |

    3     | ABRAHAM KUYPERHOF | 10. 8091XN | WEZEP |


    To support research on the table addresses, we apply an Oracle text index:

    create index ST_CTX1 on SEARCH_TABLE (address)

    indexType is ctxsys.context

    parameters ("DATASTORE CTXSYS. DEFAULT_DATASTORE');


    Our research focuses on whole words (without jokers). When searching through the data, it usually comes back with the correct results.


    SELECT THE ID

    OF SEARCH_TABLE

    WHERE CONTAINS (ADDRESS, 'GRÖNING') > 0

    ;

    Returns nothing, that is correct. Once the search argument 'GRÖNING' is replaced by 'GRONINGEN', ID 1 is correctly selected. According to this behavior, the following query returns no records:

    SELECT THE ID

    OF SEARCH_TABLE

    WHERE CONTAINS (ADDRESS, 'ABR & KUYPERHOF') > 0

    ;


    Surprisingly, however, the following query returns record ID 3:

    SELECT THE ID

    OF SEARCH_TABLE

    WHERE CONTAINS (ADDRESS, ' A & KUYPERHOF ') > 0

    ;

    (Even if data does not contain the complete word 'A'). This unexpected behavior only seems to occur when you use "A" as the initial character.

    The following query (with the search starting with the character 'J' argument) returns no data. Which is the expected behavior.

    SELECT the ID

    OF SEARCH_TABLE

    WHERE CONTAINS (ADDRESS, 'J & WILSSTRAAT') > 0

    ;

    Anyone has an idea why the text index returns with A situations? Any ideas on how to solve this problem are appreciated.

    Mark

    According to the list of empty words by default in 11.2, the letters a, d, i, s, and t are listed, so would be removed from the wanted list of tokens.  Thus, 'A & WILSSTRAAT' becomes '& WILSTRAAT' and search text line with a single word.  'j' is not an empty word, so it is considered to be a token is valid and is not in your tables.  Look in CTXSYS. CTX_STOPWORDS to see what you have.

  • All parameter memory index for Oracle text indexes

    Hi Experts,

    I'm on Oracle 11.2.0.3 on Linux and have implemented Oracle Text. I'm not an expert in this area and need help on a question. I created the Oracle text index with the default setting. However, in a white paper of oracle, I read that the default setting is perhaps not good. Excerpt from the white paper by Roger Ford:

    URL:http://www.oracle.com/technetwork/database/enterprise-edition/index-maintenance-089308.html

    "(Part of this white paper below. )" ...)

    Index memory as mentioned above, $I entries cached emptied out on the disk each time the indexing memory is exhausted. The default index to installing memory is a simple 12MB, which is very low. At the time of creating indexes, users can specify up to 50 MB, but it is still quite low.                                   

    This would be by a CREATE INDEX, something like statement:

     CREATE INDEX myindex ON mytable(mycol) INDEXTYPE IS ctxsys.context PARAMETERS ('index memory 50M');  

    Allow index of the parameters of memory beyond 50 MB, the CTXSYS user must first of all increase the value of the MAX_INDEX_MEMORY parameter, like this:

     begin ctx_adm.set_parameter('max_index_memory', '500M'); end;  

    The parameter memory must never be high point causes paging, because this will have a serious effect on indexing speed. The smallest of dedicated systems, it is sometimes advantageous to temporarily reduce the amount of memory consumed by the Oracle SGA (for example by reducing DB_CACHE_SIZE and/or SHARED_POOL_SIZE) during the index creation process. Once the index has been created, the size of the SGA can be increased again to improve query performance. & quot;

    (End of the excerpt from the white paper)


    My question is:

    (1) to apply this procedure (ctx_adm.set_parameter) obliged me to log on as user CTXSYS. Is this fair? or can it be avoided and will be based on the application schema? The CTXSYS user is locked by default and I had to unlock it. Is this OK to do it in production?

    (2) what value I should use for the max_index_memory there are 500 MB - my SGA is 2 GB in Dev / QA and / 3 GB in the production. Also in the creation of the index which is the value should I set for the parameter memory index - I had left to default, but how do I change now? Should it be 50 MB as shown in the example above?

    (3) the white paper also refer to the reconstruction of an index to an interval like once a month: ALTER INDEX DR$ index_name$ X REBUILD online;

    -Is this good advice? I would like to ask the experts once before doing this.  We are on Oracle 11 g and the white paper was drafted in 2003.

    Basically, while I read the book, I'm still not clear on many aspects and need help to understand this.

    Thank you

    OrauserN

    Index entries are built in memory, and then flushed to disk, memory is exhausted. With a setting of high index memory will mean the index entries can be longer and less fragmented, which provides better performance of the query.  Conversely, a small memory parameter index will mean emptied the disk pieces are smaller, so queries (especially on common words) will have to do a lot more e/s to extract several pieces of index for the words.

  • Oracle Text Index rebuilt manually or automatically by DEFAULT

    For the following statement:

    "The Oracle * text (officially called Oracle and Oracle Intermedia context) utility allows us to analyze through a column of large text and indexes on the words in the column."

    Unlike the ordinary tree or bitmap index, index of context, ctxcat and ctxrule Oracle may be * set isn't content update is changed.* like most of Oracle databases will use with standard relational tables ctxcat index, you must decide on a refresh interval.  Oracle provides the SYNC operator for this.  The default value is SY ^ NC = MANUAL and you must manually synchronize the index with CTX_DDL. SYNC_INDEX.

    SYNC (MANUAL |) EACH interval 'string ' | ON VALIDATION)]

    «As a result, Oracle Text indexes are only useful for removing full table scans when tables are read-only in large part and/or end users don't mind not having 100% search reminder»

    -My question: the statement above claims: "Oracle indexes context, ctxcat and ctxrule can be configured to not update the content is changed. '." " Then what is the default setting for updating the index, manual or automatic? For example:

    First of all, I created an index like this: create index users_address_idx on users (address) indextype is ctxsys.ctxcat;

    Then, I made a few changes on the table such that change the values of the column address for several lines.

    The Oracle system will rebuild the ctxcat index automatically?

    What does the ' default is SY ^ NC = MANUAL "as shown in the quote?


    Thank you for helping.

    Scott

    scottjhn wrote:
    This source: http://www.dba-oracle.com/oracle_tips_like_sql_index.htm States:

    All first upward, please do not use the Web sites which present only part of the information and instead to advertise their services.

    -My question: the statement above claims: "Oracle indexes context, ctxcat and ctxrule can be configured to not update the content is changed. '." " Then what is the default setting for updating the index, manual or automatic? For example:

    First of all, I created an index like this: create index users_address_idx on users (address) indextype is ctxsys.ctxcat;

    Then, I made a few changes on the table such that change the values of the column address for several lines.

    The Oracle system will rebuild the ctxcat index automatically?

    No, the deafult is SYNC = MANUAL
    http://docs.Oracle.com/CD/B28359_01/text.111/b28304/csql.htm#CIHGAAFI
    >

    What does the ' default is SY ^ NC = MANUAL "as shown in the quote?

    This means that the need for the Index to synchronize manually
    http://docs.Oracle.com/CD/B28359_01/text.111/b28304/cddlpkg.htm#i998469

  • Error in installing Oracle Text

    Hi all.

    I tried to install Oracle sys TEXT using the file catctx.sql
    SQL> @$ORACLE_HOME/ctx/admin/catctx.sql CTXSYS SYSAUX TEMP NOLOCK
    
    SQL> connect CTXSYS/password
    SQL> @$ORACLE_HOME/ctx/admin/defaults/drdefus.sql 
    but I got error like
    select object_name, object_type, status from dba_objects where owner='CTXSYS' and status != 'VALID' order by object_name;
    and the output is
    OBJECT_NAME     OBJECT_TYPE     STATUS
    DRVODM     PACKAGE BODY     INVALID
    and the query output is
    Select ComputerName, status, substr (version, 1, 10) as version of dba_registry where id_comp = "CONTEXT."
    COMP_NAME     STATUS     VERSION
    Oracle Text     INVALID     10.1.0.4.0
    I was put on hold out of installation.

    Let me know what Miss me in this facility?

    Thanks for help.
    Kind regards
    Dave.

    Maybe:

    exec sys.validate_context

  • Oracle Text multi column index based query returns no rows

    Hello

    I have a MAH_KERESES_MV table with 3 columns OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2. I create the following Oracle multi column text index:

    ctx_ddl.create_preference exec ('MAH_SEARCH', 'MULTI_COLUMN_DATASTORE');
    ctx_ddl.set_attribute exec ('MAH_SEARCH', 'COLUMNS', 'OBJEKTUM_NEV, KERESES_SZOVEG_1, KERESES_SZOVEG_2');

    create index MAX_KERES_CTX on MAH_KERESES_MV (OBJEKTUM_NEV)
    indexType is ctxsys.context
    parameters ("DATASTORE MAH_SEARCH");
    But the query returns no rows, although if I make the query with the 'like' operator, and then I get the results as expected:

    SELECT id, OBJEKTUM_NEV
    OF MAH_KERESES_MV
    WHERE CONTAINS (OBJEKTUM_NEV, "C") > 0;

    Can some body please help? TIA,

    Tamas

    You can do it in Oracle Text, well it is not necessarily desirable.

    You can search the

    WHERE CONTAINS(OBJEKTUM_NEV, '%C%')>0;
    

    And it will probably work in a simple test. However, using a leader like this wildcard prevents them the index on the table "list of words" used, so such a request can be very slow on a large system.
    You can improve this by using SUBSTRING_INDEX, but making your much bigger index. And you could always hit the 'expansions too' problem if %C % expansion is more than about 15,000 words (depending on version and different settings).

    Also be aware of differences in case - %C % will match 'fact' or 'FACT', as part of a CONTAINS, but not part of a TYPE.

  • Big problem with Oracle Text

    Hi all
    I use the Oracle text to perform a full text search. I have my column indexed like that

    CREATE INDEX cm_property_text ON cm_property (text_value) INDEXTYPES IS CTXSYS. FRAMEWORK

    After that, I inserted a line in the text_value field have contain is: "I and you or other ', then run the synchronous command my index finger:

    Begin
    CTXSYS. CTX_DLL. SYNC_INDEX ('cm_property_text');
    end;

    Then I run the query to select out have the text_value line contains text value is "I and you".

    SELECT * FROM cm_property WHERE CONTAINS (text_value,' I / you "")

    But I got nothing. And I tried to change like this looking for text entry

    SELECT * FROM cm_property WHERE CONTAINS (text_value, ' I/you and/or other "" ");

    And I had a line that is the line that I inserted before.

    I have really no why? Who can help me to explain about this?

    Thank you very much!

    If you want to be able to search for empty words by default, you can use an empty stopwords list or which does not contain the words you want to search. For a single character escape, preface with-not. To escape a whole word or phrase, such as a keyword or reserved word, surround it with {}. Please see the demo below.

    SCOTT@orcl_11gR2> CREATE TABLE cm_property
      2    (text_value  VARCHAR2 (60))
      3  /
    
    Table created.
    
    SCOTT@orcl_11gR2> CREATE INDEX cm_property_text
      2  ON cm_property (text_value)
      3  INDEXTYPE IS CTXSYS.CONTEXT
      4  PARAMETERS ('STOPLIST CTXSYS.EMPTY_STOPLIST')
      5  /
    
    Index created.
    
    SCOTT@orcl_11gR2> INSERT INTO cm_property (text_value)
      2  VALUES ('I and you or other')
      3  /
    
    1 row created.
    
    SCOTT@orcl_11gR2> Begin
      2    CTXSYS.CTX_DDL.SYNC_INDEX ('cm_property_text');
      3  end;
      4  /
    
    PL/SQL procedure successfully completed.
    
    SCOTT@orcl_11gR2> SELECT token_text FROM dr$cm_property_text$i
      2  /
    
    TOKEN_TEXT
    ----------------------------------------------------------------
    AND
    I
    OR
    OTHER
    YOU
    
    5 rows selected.
    
    SCOTT@orcl_11gR2> SELECT * FROM cm_property
      2  WHERE  CONTAINS (text_value, 'I {and} you') > 0
      3  /
    
    TEXT_VALUE
    ------------------------------------------------------------
    I and you or other
    
    1 row selected.
    
    SCOTT@orcl_11gR2> SELECT * FROM cm_property
      2  WHERE  CONTAINS (text_value, 'I {and} you {or} other') > 0
      3  /
    
    TEXT_VALUE
    ------------------------------------------------------------
    I and you or other
    
    1 row selected.
    
    SCOTT@orcl_11gR2>
    
  • Error while creating or rebuilding Oracle text Lexer keyword index

    Hi all
    I am getting following error when I create oracle text indexes using lexer & keyword in the list of stopwords.
    Please help me if any body know.
    Thanks in advance.


    Error from the 1 in the command line:
    CREATE INDEX TXT_INX_TEXT_SEARCH ON TEXT_SEARCH (BFILE_DOC)

    Post INDEXTYPE IS "CTXSYS. "" (LOCAL) CONTEXT.
    PARTITION SETTINGS "BEFORE_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q1_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q2_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q3_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q4_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q1_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q2_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q3_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q4_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q1_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q2_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q3_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q4_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "THE_REST' ('LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)')
    )
    Error in the command line: 1 column: 13
    Error report:
    SQL error: ORA-29855: error when executing routine ODCIINDEXCREATE
    ORA-20000: Oracle text error:
    DRG-11000: invalid keyword LEXER
    ORA-06512: at "CTXSYS. DRUE", line 160
    ORA-06512: at "CTXSYS. TEXTINDEXMETHODS', line 365
    29855 00000 - "an error occurred in the execution of routine ODCIINDEXCREATE.
    * Cause: Cannot run the ODCIIndexCreate routine.
    * Action: Check if the routine was coded correctly.


    Kind regards
    Jack R.

    Hello

    It works if you put a clause of additional PARAMETERS to the end, so the creation looks like:
    CREATE INDEX TXT_INX_TEXT_SEARCH ON TEXT_SEARCH (BFILE_DOC)
    INDEXTYPE IS "CTXSYS. "" (LOCAL) CONTEXT.
    PARTITION SETTINGS "BEFORE_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q1_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q2_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q3_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q4_2007" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q1_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q2_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q3_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q4_2008" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q1_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q2_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q3_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "Q4_2009" ("LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)"),
    PARTITION SETTINGS "THE_REST' ('LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)')
    )
    PARAMETERS ('LEXER dd_lexer list of words EMPTY dd_stoplist SYNC (ON COMMIT)')<==>

    Hope this helps

    Herald tiomela

  • Interactive or the missing words Test

    Hi all

    I would like to create an interactive test where my user will be asked to complete the word in a sentence. Something like: the name of the ancient city of Sparta was ________. For each correct answer, I want to give 5 points and for evil responds with 0 points. In addition, I have some sentances with two missing words (for example, the icon in the Church is a _ because the original was _) in which I would give 2.5 points for each correct answer. Finally, the code should calcluate the total score and write it to a file. The steps to resolve this I guess should be something like:

    (1) load each question in a field on the scene (done)
    (2) that the user can type the answer in a field on the scene + instruct him to use commas for the words double (facts)
    (3) have a next button that takes care of the question onstage and:
    (a) write the question and the answer in the text by using Buddy API (fact) file
    (b) give a score for each question (5 simple answers, 2.5 for each word and 0 for false) double
    (c) calculate a total score and write it in the same file.

    (As you understand from the above are my problems with steps b) and c). Any ideas would be very appreciated!

    Thank you very much

    Here is the answer for all those who might need it:

  • ORACLE TEXT INDEX ON COLUMN VARCHAR2

    Hi all
    I find a search in our application very slow so I thought using ORACLE TEXT CTXCAT index based search but I find some inconsistencies. How can this be avoided... The following query should not return if I can replace with the text of the oracle, but I find few values... why result... I also gave some results of the sample below...

    SELECT first_name
    Of uc_partner_ms
    WHERE
    Upper (first_name) LIKE '% WIE % '.
    less
    SELECT first_name
    Of uc_partner_ms
    WHERE CATSEARCH (name,'* wie *', null) > 0

    RESULTS...

    Hans-Werner Mrowiec
    Heinz Oesterwiemann GmbH
    Helmut Froitzheim GmbH, Neuwied
    Heribert Schwies
    Hermann Twieling GmbH & Co. KG
    Breitwieser Horst
    Horst-Dieter Swie

    The script used to create indexes is

    Start
    ctx_ddl.create_preference ('mylex', 'BASIC_LEXER');
    ctx_ddl.set_attribute ('mylex', 'index_themes', 'NO');
    ctx_ddl.set_attribute ('mylex', 'mixed_case', 'NO');
    end;

    CREATE INDEX partner_index ON uc_partner_ms (first name)
    INDEXTYPE IS CTXSYS. CTXCAT
    parameters ('mylex LEXER');


    Where am I wrong that I couldn't guess a trend in the other that all results be lowercase...

    (1) what is the difference tag brings in the query?

    This is the QUERY MODEL, which allows you to use the CONTEXT GRAMMAR on the CTXCAT index, as if you were using CONTAINS. There are examples in the documentation here:

    http://download.Oracle.com/docs/CD/B19306_01/text.102/b14218/csql.htm#i1000002

    (2) is it a good idea to replace catsearch for like operator leader %?

    The wildcard character for a CATSEARCH operator on a CTXCAT index is the asterisk. The wildcard character for an operator CONTAINS a CONTEXT index is a percent sign. CATSEARCH does not support major wildcards, you can use a word followed by an asterisk, but not preceded by an asterisk. The percent sign is not a valid wildcard with CATSEARCH. However, when you use the query template and specify GRAMMAR = "CONTEXT". Then, it's as if you were using a CONTAINS operator with a CONTEXT index, so you can use a wildcard of beginning and the % sign is the wildcard character. You can use AS with signs of percentage before and after, but it is likely to be very slow, because it cannot use an index. If the main characters using generic is going to be a frequent requirement, then you would probably be better with a hint of CONTEXT with a BASIC_WORDLIST valued SUBSTRING_INDEX true for optimal speed.

    (3) also, I read in 10 g, the maximum number of rows returned is only 15000. is this true?

    N ° you probably read about the WILDCARD_MAXTERMS of 15,000 in 10 g limit. This is the maximum number of separate tokens (not lines) that can match a wildcard character without producing an error. In 11g the maximum is 50,000. The default values are lower. If you want to allow a large number of generic searches that match a large number of chips, then you probably assign the WILDCARD_MAXTERMS the most. However, there will always be some queries that are too general, you should plan to trap the error and returns a comprehensible message to your user, asking them that their search is too broad and to enter a value for more specific search.

  • (9.2.0.5.0) 9i - Oracle Text - Indexing of Oracle files on the FTP server

    I'm using Oracle 9i (9.2.0.5.0) and I cannot upgrade to a newer version of Oracle DB.
    I am new to this technology, and I have not tried it yet myself.

    I was reading some articles, documents or references on Oracle text technology and I find that Oracle text must be able to create an index of context on files residing on the FTP server.
    I also discovered that, for this purpose, a 'URL_DATASTORE' should be used.

    I'd be happy if someone can answer my question before I decide to start using this technology:
    Is there a limitation that I should be informed when creating index of context on files residing on the FTP server? (file size limit, limitation of the types of files supported)
    -In the creation of the index process are the files indexed, downloaded and copied in the Oracle database permanently or only temporarily until the index is created?
    -Everything is of incremental indexing (when I add new files in the data store that I don't have to rebuild the entire index)?
    There there a formula between context index disk size and the disk size indexed files?

    Kind regards

    Michal

    Is there a limitation that I should be informed when creating index of context on files residing on the FTP server? (file size limit, limitation of the types of files supported)
    Maximum file size is configurable up to 2 GB. No limitation on the file type from the data store itself, but if you want to process binary file list filter suported file formats will apply (see the appendix in the Administrator's guide)

    -In the creation of the index process are the files indexed, downloaded and copied in the Oracle database permanently or only temporarily until the index is created?
    That temporarily

    -Everything is of incremental indexing (when I add new files in the data store that I don't have to rebuild the entire index)?
    The question, I suspect that you see this as a robot - you expect to provide the address of an FTP site and have it look for all documents. This isn't how it works. Instead, you must place all of the URLS in a table, and text will index these URLS (and only these URLs)

    If new files are added, you must reorganize somehow having the new lines added to your table. Then the text will do an incremental update, it will not have to rebuild the entire index.

    There there a formula between context index disk size and the disk size indexed files?
    It varies a lot depending on the data types and indexing of selected options, but a typical result is that the index will be 40% of the total size of the file. However, if the documents are in the format (for example, Word, PDF) the percentage will be much smaller.

  • Problem with the Oracle text markup

    Hello

    I have a problem with the Oracle text markup.

    I am looking for keywords in a text which is composed by a question and answer.
    Here is the structure of my text:
    & lt; div class = 'question' & gt;
    & lt; a & gt; the title of my question & lt; /a & gt;
    & lt; div class = "reply & gt;
    content of response
    & lt; / div & gt;
    & lt; / div & gt;

    It is possible to search those keywords in the question or answer only. For this, I use the stored procedure:

    {call CTX_DOC. MARKUP)
    index_name = >?
    textkey = >?
    text_Query = >?
    restab = >?
    query_id = >?
    startTag = >?
    (EndTag = >?)}

    _with these parameters: _

    index_name = < my index >
    textkey = < id for the search text >
    text_Query = < a query containing the keywords >
    restab = < a table SQL to store the marked text >
    query_id = < id >
    startTag = ' < span class =-"highlight\" >. "
    EndTag = "</span >.

    The markup should be done only in the place you want (question, answer, or both).
    The markup is good when I search a keyword throughout the text, in the question or answer only.
    * If I search two key words in the question or answer, the markup is bad *.

    _Example: __
    I am looking for the words "* Internet *" in question only.
    Here's the query passed to the stored procedure:
    + * text_query * = 'service & internet' INPATH (//div[@class = 'question'] / has) +.

    In the question, these words are well marked.
    In response, only the first word is marked.

    * Why the first keyword is also marked in the response while the query specifies a search in question only? *

    The same problem appears when I search for the same keywords in the response only.
    In this case, in the answer, these words are marked as well.
    In the issue, only the first word is marked.

    Thanks for your help

    Edited by: user11088931 Apr 21. 2009 06:17

    Try text_query = (service & internet) INPATH (//div/a)

    Single quotes in a query do nothing. I think that your request has been treated as

    Service & (internet INPATH (//div/a))

Maybe you are looking for