Text Indexing based on XML_SECTION_GROUP

I've text-indexed a column using a section group based on XML_SECTION_GROUP and containing 5 field sections corresponding to 5 xml tags.
It took a long time to index - somewhere around 12 hours - compared to 2 hours to do a vanilla text index on the same column / same data.
Is this reasonable - should I expect the indexing time to be roughly equivalent to text-indexing 5 separate columns?
Thanks in advance!
Edited by: Cathy Farrell on Jan 7, 2009 8:34 AM

The following section of the documentation addresses the question, "How long should indexing take?" and offers some suggestions on index memory settings to speed things up.
http://download.oracle.com/docs/cd/B28359_01/text.111/b28303/aoptim.htm#CCAPP9273

Similar Messages

  • Build text-index based on a given list of words or phrases.

    I'm somewhat of a beginner to this text-indexing. I've been able to build and query a simple text-index and even implement my own list of stop-words. However, I'd like to be able to control the set of words that are indexed.
    For example, If I have a table that contains a CLOB field filled with text documents and I also have a list of 200 words:
    "TUBERCULOSIS"
    "DIABETES"
    "CHEMOTHERAPY"
    Can I generate an index that only indexes the words on that list and ignores all the other words? (the reverse of using a stop-list)
    Also, could it be done with a list of phrases instead of single words:
    "CARDIAC ABLATION"
    "ATRIOVENTRICULAR NODE"
    "PULMONARY ABSCESS"
    Thanks.

    Please see if you can use any of the pieces of the following example.
    SCOTT@orcl_11gR2> -- table containing list of phrases:
    SCOTT@orcl_11gR2> create table phrases
      2    (phrase        varchar2 (21))
      3  /
    Table created.
    SCOTT@orcl_11gR2> insert all
      2  into phrases values ('TUBERCULOSIS')
      3  into phrases values ('DIABETES')
      4  into phrases values ('CHEMOTHERAPY')
      5  into phrases values ('CARDIAC ABLATION')
      6  into phrases values ('ATRIOVENTRICULAR NODE')
      7  into phrases values ('PULMONARY ABSCESS')
      8  select * from dual
      9  /
    6 rows created.
    SCOTT@orcl_11gR2> -- ctxrule index on list of phrases:
    SCOTT@orcl_11gR2> create index phrases_idx on phrases (phrase)
      2  indextype is ctxsys.ctxrule
      3  /
    Index created.
    SCOTT@orcl_11gR2> -- table to hold combination of documents and matching phrases:
    SCOTT@orcl_11gR2> create table classifications
      2    (document  clob,
      3       phrase       varchar2 (60))
      4  /
    Table created.
    SCOTT@orcl_11gR2> -- context index on classifications table:
    SCOTT@orcl_11gR2> create index class_phrase_idx
      2  on classifications (phrase)
      3  indextype is ctxsys.context
      4  parameters ('sync (on commit)')
      5  /
    Index created.
    SCOTT@orcl_11gR2> -- regular index on classifications table:
    SCOTT@orcl_11gR2> create index class_phrase_idx2
      2  on classifications (phrase)
      3  /
    Index created.
    SCOTT@orcl_11gR2> -- table for documents:
    SCOTT@orcl_11gR2> create table documents
      2    (document     clob)
      3  /
    Table created.
    SCOTT@orcl_11gR2> -- trigger to populate classifications table from documents table:
    SCOTT@orcl_11gR2> create or replace trigger documents_bir
      2    before insert on documents
      3    for each row
      4  begin
      5    for r in
      6        (select phrase
      7         from      phrases
      8         where  matches (phrase, :new.document) > 0)
      9    loop
    10        insert into classifications (document, phrase) values
    11          (:new.document, r.phrase);
    12    end loop;
    13  end documents_bir;
    14  /
    Trigger created.
    SCOTT@orcl_11gR2> -- inserts into documents table:
    SCOTT@orcl_11gR2> insert all
      2  into documents values ('word1 tuberculosis word2')
      3  into documents values ('word3 diabetes word4')
      4  into documents values ('word5 chemotherapy word6')
      5  into documents values ('word7 cardiac ablation word8')
      6  into documents values ('word9 atrioventricular node word10')
      7  into documents values ('word11 pulmonary abscess word12')
      8  into documents values ('word13 word14 word15')
      9  select * from dual
    10  /
    7 rows created.
    SCOTT@orcl_11gR2> commit
      2  /
    Commit complete.
    SCOTT@orcl_11gR2> -- resulting population of classifications table:
    SCOTT@orcl_11gR2> column phrase   format a21
    SCOTT@orcl_11gR2> column document format a34
    SCOTT@orcl_11gR2> select phrase, document from classifications
      2  /
    PHRASE                DOCUMENT
    TUBERCULOSIS          word1 tuberculosis word2
    DIABETES              word3 diabetes word4
    CHEMOTHERAPY          word5 chemotherapy word6
    CARDIAC ABLATION      word7 cardiac ablation word8
    ATRIOVENTRICULAR NODE word9 atrioventricular node word10
    PULMONARY ABSCESS     word11 pulmonary abscess word12
    6 rows selected.
    SCOTT@orcl_11gR2> -- tokens that are indexed:
    SCOTT@orcl_11gR2> select token_text from dr$class_phrase_idx$i
      2  /
    TOKEN_TEXT
    ABLATION
    ABSCESS
    ATRIOVENTRICULAR
    CARDIAC
    CHEMOTHERAPY
    DIABETES
    NODE
    PULMONARY
    TUBERCULOSIS
    9 rows selected.
    SCOTT@orcl_11gR2> -- searches using text index:
    SCOTT@orcl_11gR2> set autotrace on explain
    SCOTT@orcl_11gR2> select phrase, document
      2  from   classifications
      3  where  contains (phrase, 'tuberculosis') > 0
      4  /
    PHRASE                DOCUMENT
    TUBERCULOSIS          word1 tuberculosis word2
    1 row selected.
    Execution Plan
    Plan hash value: 2513347404
    | Id  | Operation                   | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                  |     1 |  2046 |     4   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| CLASSIFICATIONS  |     1 |  2046 |     4   (0)| 00:00:01 |
    |*  2 |   DOMAIN INDEX              | CLASS_PHRASE_IDX |       |       |     4   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("CTXSYS"."CONTAINS"("PHRASE",'tuberculosis')>0)
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2> select phrase, document
      2  from   classifications
      3  where  contains (phrase, 'cardiac ablation') > 0
      4  /
    PHRASE                DOCUMENT
    CARDIAC ABLATION      word7 cardiac ablation word8
    1 row selected.
    Execution Plan
    Plan hash value: 2513347404
    | Id  | Operation                   | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                  |     1 |  2046 |     4   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| CLASSIFICATIONS  |     1 |  2046 |     4   (0)| 00:00:01 |
    |*  2 |   DOMAIN INDEX              | CLASS_PHRASE_IDX |       |       |     4   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("CTXSYS"."CONTAINS"("PHRASE",'cardiac ablation')>0)
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2> select phrase, document
      2  from   classifications
      3  where  contains (phrase, '%ab%') > 0
      4  /
    PHRASE                DOCUMENT
    DIABETES              word3 diabetes word4
    CARDIAC ABLATION      word7 cardiac ablation word8
    PULMONARY ABSCESS     word11 pulmonary abscess word12
    3 rows selected.
    Execution Plan
    Plan hash value: 2513347404
    | Id  | Operation                   | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                  |     1 |  2046 |     4   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| CLASSIFICATIONS  |     1 |  2046 |     4   (0)| 00:00:01 |
    |*  2 |   DOMAIN INDEX              | CLASS_PHRASE_IDX |       |       |     4   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("CTXSYS"."CONTAINS"("PHRASE",'%ab%')>0)
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2> -- searches using non-text index:
    SCOTT@orcl_11gR2> select phrase, document
      2  from   classifications
      3  where  phrase = 'PULMONARY ABSCESS'
      4  /
    PHRASE                DOCUMENT
    PULMONARY ABSCESS     word11 pulmonary abscess word12
    1 row selected.
    Execution Plan
    Plan hash value: 4202264836
    | Id  | Operation                   | Name              | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                   |     1 |  2034 |     1   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| CLASSIFICATIONS   |     1 |  2034 |     1   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | CLASS_PHRASE_IDX2 |     1 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("PHRASE"='PULMONARY ABSCESS')
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2> select phrase, document
      2  from   classifications
      3  where  phrase = 'PULMONARY ABSCESS'
      4  /
    PHRASE                DOCUMENT
    PULMONARY ABSCESS     word11 pulmonary abscess word12
    1 row selected.
    Execution Plan
    Plan hash value: 4202264836
    | Id  | Operation                   | Name              | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                   |     1 |  2034 |     1   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| CLASSIFICATIONS   |     1 |  2034 |     1   (0)| 00:00:01 |
    |*  2 |   INDEX RANGE SCAN          | CLASS_PHRASE_IDX2 |     1 |       |     1   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - access("PHRASE"='PULMONARY ABSCESS')
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2> select phrase, document
      2  from   classifications
      3  where  phrase like '%AB%'
      4  /
    PHRASE                DOCUMENT
    CARDIAC ABLATION      word7 cardiac ablation word8
    DIABETES              word3 diabetes word4
    PULMONARY ABSCESS     word11 pulmonary abscess word12
    3 rows selected.
    Execution Plan
    Plan hash value: 723026238
    | Id  | Operation                   | Name              | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                   |     3 |  6102 |     0   (0)| 00:00:01 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| CLASSIFICATIONS   |     3 |  6102 |     0   (0)| 00:00:01 |
    |*  2 |   INDEX FULL SCAN           | CLASS_PHRASE_IDX2 |     1 |       |     0   (0)| 00:00:01 |
    Predicate Information (identified by operation id):
       2 - filter("PHRASE" IS NOT NULL AND "PHRASE" LIKE '%AB%')
    Note
       - dynamic sampling used for this statement (level=2)
    SCOTT@orcl_11gR2>

  • SQL Server 2008 R2 Express Edition and Full Text Indexing

    Hello, we have recently upgraded our web front end server from SQL Server 2005 (Standard Edition) to SQL Server 2008 R2 Express Edition (in conjuction with upgrading our main production servers to SQL 2008 R2 Standard). We have 12 Databases on our production
    SQL Server that are replicated to our web frontend server to the SQL Express instance. One of these databases has a FULL TEXT INDEX. The production database is running the Adobe iFilter version 9 64Bit. The FULL TEXT CATALOG has been created and populated
    and performs searches as intended. However, upon replication, when using the search option on our web page based on that PDF iFilter, it no longer works. After examining the properties of the FULL TEXT CATALOG, we note that the Catalog size on the subscriber
    end is 0MB in size (whereas it is 3MB on the Publication side). Also the Unique Key Count on the subscriber side is '1' whereas on the publisher side it is 30,000+. After examining the FT Indexing logs on the subscriber side shows an error: "Warning: No appropriate
    filter was found during full-text index population" On the subscriber side which is running Windows Server 2003 and SQL Server 2008 R2 Express Edition, Adobe Reader 10.1.1 is installed (all 32Bit) with the Adobe iFilter AcroRdIF.dll. When running the SELECT
    * from sys.fulltext_document_types T-Sql statement, the list returned shows the PDF filter to be installed and shows the correct path. Under the System Environment Variables, that path has also been installed (from previous recommendations in researching this
    problem). After numerous reboots, service restarts and re-attempts to get the FT Daemon to crawl - no success. Can anyone please help with this problem? Is there something I am missing? In an attempt to work around this problem thinking there might be a version
    conflict between the 64Bit version on the publisher and the 32Bit version on the subscriber, I disabled the replication of the FULL TEXT CATALOG and tried to create a new catalog on the subscriber with the same results. Thank you for your answers in advance
    - Fustrated! Sorry, somehow this got posted originally under Server Design

    Hello Jeff hope your still out there.  I wrote this question 2 years ago and upgraded to SQL Express with advanced services.  Full Text replication worked until last week.  We are operating in a virtual environment.  My publisher box
    is a Windows Server 2008 R2 (64bit) with SQL Server Standard Edition.  My Web front subscriber is a Windows 2003 R2 (32bit) Server with SQL Server 2008 R2 Express SP1 with Advanced Services. Now the exact same thing is happening after 2+ years. 
    We are looking for possible updates that might have broken this but I am stretching that.  Any clues please?  32bit vs. 64bit?

  • Performance issue with Oracle Text index

    Hi Experts,
    We are on Oracle 11.2..0.3 on Solaris 10. I have implemented Oracle Text in our environment and I am facing a strange performance issue that is happening in our environment.
    One sql having CONTAINS clause is taking forever - more than 20 minutes and still does not complete. This sql has a contains clause and an exists clause and a not exists clause.
    Now if I remove the exists clause and a not exists clause , it completes fast. but with those two clauses it is just taking forever. It is late night so i am not able to post the table and sql query details and will do so tomorrow but based on this general description, are there any pointers for me to review?
    sql query doing fine:
    SELECT
        U.CLNT_OID, U.USR_OID, S.MAILADDR
    FROM
        access_usr U
        INNER JOIN access_sia S
            ON S.USR_OID = U.USR_OID AND S.CLNT_OID = U.CLNT_OID
        WHERE U.CLNT_OID = 'ABCX32S'
        AND CONTAINS(LAST_NAME , 'TO%' ) >0
    --sql query that hangs forever:
    SELECT
        U.CLNT_OID, U.USR_OID, S.MAILADDR
    FROM
        access_usr U
        INNER JOIN access_sia S
            ON S.USR_OID = U.USR_OID AND S.CLNT_OID = U.CLNT_OID
        WHERE U.CLNT_OID = 'ABCX32S'
        AND CONTAINS(LAST_NAME , 'TO%' ) >0
    and exists (--one clause here wiht a few table joins)
    and not exists (--one clause here wiht a few table joins);
    --Now another strange thing I found is if instead of 'TO%' in this sql, if I were to use 'ZZ%' or 'L1%' it works fast but for 'TO%' it goes slow with those two exists not exists clauses!
    I will be most thankful for the inputs.
    OrauserN

    Hi Barbara,
    First of all, thanks a lot for reviewing the issue.
    Unluckily making the change to empty_stoplist did not work out. I am today copying the entire sql here that has this issue and will be most thankful for more insights/pointers on what can be done.
    Here is the entire sql:
    SELECT U.CLNT_OID,
           U.USR_OID,
           S.EMAILADDRESS,
           U.FIRST_NAME,
           U.LAST_NAME,
           S.JOBCODE,
           S.LOCATION,
           S.DEPARTMENT,
           S.ASSOCIATEID,
           S.ENTERPRISECOMPANYCODE,
           S.EMPLOYEEID,
           S.PAYGROUP,
           S.PRODUCTLOCALE
      FROM    ACCESS_USR U
           INNER JOIN
              ACCESS_SIA S
           ON S.USR_OID = U.USR_OID AND S.CLNT_OID = U.CLNT_OID
    WHERE     U.CLNT_OID = 'G39NY3D25942TXDA'
           AND EXISTS
                  (SELECT 1
                     FROM ACCESS_USR_GROUP_XREF UGX
                          INNER JOIN ACCESS_GROUP RELG
                             ON     RELG.CLNT_OID = UGX.CLNT_OID
                                AND RELG.GROUP_OID = UGX.GROUP_OID
                          INNER JOIN ACCESS_GROUP G
                             ON     G.CLNT_OID = RELG.CLNT_OID
                                AND G.GROUP_TYPE_OID = RELG.GROUP_TYPE_OID
                    WHERE     UGX.CLNT_OID = U.CLNT_OID
                          AND UGX.USR_OID = U.USR_OID
                          AND G.GROUP_OID = 920512943
                          AND UGX.INCLUDED = 1)
           AND NOT EXISTS
                      (SELECT 1
                         FROM    ACCESS_USR_GROUP_XREF UGX
                              INNER JOIN
                                 ACCESS_GROUP G
                              ON     G.CLNT_OID = UGX.CLNT_OID
                                 AND G.GROUP_OID = UGX.GROUP_OID
                        WHERE     UGX.CLNT_OID = U.CLNT_OID
                              AND UGX.USR_OID = U.USR_OID
                              AND G.GROUP_OID = 920512943
                              AND UGX.INCLUDED = 1)
           AND CONTAINS (U.LAST_NAME, 'Bon%') > 0;
    Like I said before if the EXISTS and NOT EXISTS clause are removed it works in sub-second. But with those EXISTS and NOT EXISTS CLAUSE IT TAKES ANY WHERE FROM 25 minutes to more than one hour.
    NOte also that it was not TO% but Bon% in the CONTAINS clause that is giving the issue - sorry that was wrong on my part.
    Also please see below the ORACLE TEXT index defined on the table ACCESS_USER:
    --definition of preferences used in the index:
    SET SERVEROUTPUT ON size unlimited
    WHENEVER SQLERROR EXIT SQL.SQLCODE
    DECLARE
       v_err       VARCHAR2 (1000);
       v_sqlcode   NUMBER;
       v_count     NUMBER;
    BEGIN
       ctxsys.ctx_ddl.create_preference ('cust_lexer', 'BASIC_LEXER');
       ctxsys.ctx_ddl.set_attribute ('cust_lexer', 'base_letter', 'YES'); -- removes diacritics
    EXCEPTION
       WHEN OTHERS
       THEN
          v_err := SQLERRM;
          v_sqlcode := SQLCODE;
          v_count := INSTR (v_err, 'DRG-10701');
          IF v_count > 0
          THEN
             DBMS_OUTPUT.put_line (
                'The required preference named CUST_LEXER with BASIC LEXER is already set up');
          ELSE
             RAISE;
          END IF;
    END;
    DECLARE
       v_err       VARCHAR2 (1000);
       v_sqlcode   NUMBER;
       v_count     NUMBER;
    BEGIN
       ctxsys.ctx_ddl.create_preference ('cust_wl', 'BASIC_WORDLIST');
       ctxsys.ctx_ddl.set_attribute ('cust_wl', 'SUBSTRING_INDEX', 'true'); -- to improve performance
    EXCEPTION
       WHEN OTHERS
       THEN
          v_err := SQLERRM;
          v_sqlcode := SQLCODE;
          v_count := INSTR (v_err, 'DRG-10701');
          IF v_count > 0
          THEN
             DBMS_OUTPUT.put_line (
                'The required preference named CUST_WL with BASIC WORDLIST is already set up');
          ELSE
             RAISE;
          END IF;
    END;
    --now below is the code of the index:
    CREATE INDEX ACCESS_USR_IDX3 ON ACCESS_USR
    (FIRST_NAME)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS('LEXER cust_lexer WORDLIST cust_wl SYNC (ON COMMIT)');
    CREATE INDEX ACCESS_USR_IDX4 ON ACCESS_USR
    (LAST_NAME)
    INDEXTYPE IS CTXSYS.CONTEXT
    PARAMETERS('LEXER cust_lexer WORDLIST cust_wl SYNC (ON COMMIT)');
    The strange thing is that, like I said, If I remove the exists clause the query returns very fast. Also if I modify the query to use only one NOT EXISTS clause and remove the other EXISTS clause it returns in less than one second.  Also if I remove the EXISTS clause and use only the NOT EXISTS  clause it returns in less than 4 seconds. But with both clauses it runs forever!
    When I tried to get dbms_xplan.display_cursor to get the query plan (for the case of both exists and not exists clause in the query), it said that previous statement's sql id was 0 or something like that so that I was not able to see the query plan. I will keep trying to get this plan (it takes 25 minutes to one hour each time but will get this info soon). Again any pointers are most helpful.
    Regards
    OrauserN

  • ORACLE TEXT INDEX ON VARCHAR2 COLUMN

    Hello All,
    I find a search in our application very slow so i thought of using ORACLE TEXT CTXCAT index based search but i find certain inconsistencies . How can this be avoided....The following query should not return result if i can replace with oracle text but i find few values....why is that...i have also given few sample results below....
    SELECT first_name
    FROM uc_partner_ms
    WHERE
    Upper(first_name) LIKE '%WIE%'
    minus
    SELECT first_name
    FROM uc_partner_ms
    WHERE CATSEARCH (first_name,'*wie*', null) > 0
    RESULTS ....
    Hans-Werner Mrowiec
    Heinz Oesterwiemann GmbH
    Helmut Froitzheim GmbH, Neuwied
    Heribert Schwies
    Hermann Twieling GmbH & Co. KG
    Horst Breitwieser
    Horst-Dieter Swie
    The script used for creating index is
    begin
    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 ( 'LEXER mylex' );
    Where am i wrong i could not guess a trend in the results other than all being in lower case.....

    Catsearch does not support leading wildcards. As a workaround, you can use a query template with context grammar. Please see the reproduction and solution below.
    SCOTT@orcl_11g> -- test environment:
    SCOTT@orcl_11g> CREATE TABLE uc_partner_ms
      2    (first_name  VARCHAR2 (60))
      3  /
    Table created.
    SCOTT@orcl_11g> SET DEFINE OFF
    SCOTT@orcl_11g> INSERT ALL
      2  INTO uc_partner_ms VALUES ('Hans-Werner Mrowiec')
      3  INTO uc_partner_ms VALUES ('Heinz Oesterwiemann GmbH')
      4  INTO uc_partner_ms VALUES ('Helmut Froitzheim GmbH, Neuwied')
      5  INTO uc_partner_ms VALUES ('Heribert Schwies')
      6  INTO uc_partner_ms VALUES ('Hermann Twieling GmbH & Co. KG')
      7  INTO uc_partner_ms VALUES ('Horst Breitwieser')
      8  INTO uc_partner_ms VALUES ('Horst-Dieter Swie')
      9  SELECT * FROM DUAL
    10  /
    7 rows created.
    SCOTT@orcl_11g> begin
      2    ctx_ddl.create_preference('mylex', 'BASIC_LEXER');
      3    ctx_ddl.set_attribute ( 'mylex', 'index_themes', 'NO');
      4    ctx_ddl.set_attribute ( 'mylex', 'mixed_case', 'NO');
      5  end;
      6  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl_11g> CREATE INDEX partner_index ON uc_partner_ms (first_name)
      2  INDEXTYPE IS CTXSYS.CTXCAT
      3  parameters ( 'LEXER mylex' )
      4  /
    Index created.
    SCOTT@orcl_11g> -- reproduction:
    SCOTT@orcl_11g> SELECT first_name
      2  FROM uc_partner_ms
      3  WHERE
      4  Upper(first_name) LIKE '%WIE%'
      5  minus
      6  SELECT first_name
      7  FROM uc_partner_ms
      8  WHERE CATSEARCH (first_name,'*wie*', null) > 0
      9  /
    FIRST_NAME
    Hans-Werner Mrowiec
    Heinz Oesterwiemann GmbH
    Helmut Froitzheim GmbH, Neuwied
    Heribert Schwies
    Hermann Twieling GmbH & Co. KG
    Horst Breitwieser
    Horst-Dieter Swie
    7 rows selected.
    SCOTT@orcl_11g> -- solution:
    SCOTT@orcl_11g> SELECT first_name
      2  FROM uc_partner_ms
      3  WHERE
      4  Upper(first_name) LIKE '%WIE%'
      5  minus
      6  SELECT first_name
      7  FROM   uc_partner_ms
      8  WHERE  CATSEARCH
      9             (first_name,
    10              '<query>
    11              <textquery grammar="CONTEXT">
    12                %wie%
    13              </textquery>
    14            </query>',
    15              null) > 0
    16  /
    no rows selected
    SCOTT@orcl_11g>

  • Oracle Text Index on Materialized View

    Hello,
    I have designed a search engine for an internet application.
    We have different tables for our main business objects, the search is based on the content of all these dependent entities (Product, Company etc...)
    So I have created a materialized view to embody this aggregation.
    Then I have created a Multi column datastore index on top of the snapshot.
    The search engine has to be refreshed automatically 3 times a day, and manually anytime.
    This is achieved by executing a complete refresh on the view and rebuild the index, programmatically via Toplink (SqlCall).
    The MV refresh looks like this :
    alter index usr_batiprod.fullTextMulticolIdx rebuild
    and the index rebuild:
    begin
    DBMS_MVIEW.REFRESH('FT_TEST','C');
    end;
    Everything was fine until now, we have had lots of tuning on the index side, the refresh process was working fine...
    We have let the users access the engine since Thursday (the index had been created on the production environment a fews weeks ago) and since yesterday (or maybe before) we have been experiencing data incoherency on the index...
    I've tracked down the pb to the Fulltext Search's refresh process (manual and automatic share the same code) that was crashing on the Materialized view refresh :
    java.sql.SQLException: ORA-20000: Oracle Text error:
    DRG-50610: internal error: drexdsync
    DRG-50857: oracle error in drekrtd (lob erase)
    ORA-00060: deadlock detected while waiting for resource
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 794
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 851
    ORA-06512: at "SYS.DBMS_SNAPSHOT", line 832
    ORA-06512: at line 2
    Again, we had tested the functionality thoroughly and never experienced such behaviour before... even while refreshing the materialized view and the index 3 times (or more) a day..
    Once I dropped the Oracle Text Index, I was able to refresh the MV again..
    so it looks like the index was in some incoherent state and was holding a lock on the materialized view...
    Maybe my Index refresh call is wrong, and a stronger load on the functionality leads quickly to this pb, I dont know..
    I had always been a bit doubtful towards my index rebuild call, so Im thinking about using a more complete call :
    alter index usr_batiprod.fullTextMulticolIdx rebuild parameters ('sync')
    is it enough, or do I have to switch to a 'Oracle Text' specific call ?
    Is there another possible reason for the MV lock ?
    Thank you for your support
    Best Regards
    Olivier Cuzacq

    MVs are constructed in different ways and have lots of different uses.
    Why not just use MV as temp table for OT (Oracle Text) index?
    Refresh MV OT_TEMP.
    Delete all not matching rows from OT.
    Insert all missing missing rows from OT_TEMP to OT.
    sync OT index (online).
    Query table OT.

  • Problem crating text index with PREFIX_INDEX option

    I am trying to create a text index with prefixes option for use in wildcard search scenarios.
    Here is the code I use:
    connect CTXSYS/*******
    BEGIN
    ctx_ddl.create_preference('wildcard_pref', 'BASIC_WORDLIST');
    ctx_ddl.set_attribute('wildcard_pref','PREFIX_INDEX','TRUE');
    ctx_ddl.set_attribute('wildcard_pref','PREFIX_MIN_LENGTH',3);
    ctx_ddl.set_attribute('wildcard_pref','PREFIX_MAX_LENGTH',8);
    ctx_ddl.set_attribute('wildcard_pref','SUBSTRING_INDEX','YES');
    END;
    And preference is created
    SELECT PRE_OWNER, PRE_NAME FROM CTXSYS.CTX_PREFERENCES;
    PRE_OWNER PRE_NAME
    CTXSYS WILDCARD_PREF
    CTXSYS DEFAULT_STORAGE
    CTXSYS DEFAULT_CLASSIFIER
    Now when I log as one of the database users and try to create the index,
    I got this:
    create index wildcard_idx on MY_Table(Name)
    indextype is ctxsys.context
    parameters ('WORDLIST wildcard_pref') ;
    create index wildcard_idx on MY_Table(Name)
    ERROR at line 1:
    ORA-29855: error occurred in the execution of ODCIINDEXCREATE routine
    ORA-20000: Oracle Text error:
    DRG-10700: preference does not exist: wildcard_pref
    ORA-06512: at "CTXSYS.DRUE", line 160
    ORA-06512: at "CTXSYS.TEXTINDEXMETHODS", line 364
    What I am doing wrong ? Keep in mind that I was able to create a text index without the prefixes, but a lot of the searches will be based on patial word search.
    Eventualy I would also like to make those indexes be tansactional and work as a datastore (multiple column search)
    Thanks.
    Stefan

    Problem solved.
    Atrributes and preferences had to be created by the same user creating the index.
    Log as sysdba and
    GRANT EXECUTE ON CTX_DDL TO <user_that_creates_index>
    And it works.
    Message was edited by:
    Stef4o

  • Error in creation of text indexes and synching with user datastore

    Hi
    has any body encountered error in creating text indexes on 9.2.0.1 with user datastore. you can create them only with no-populate option. however once created after checking-in documents the indexes cannot be synched using ctx_ddl command manually.

    The only thing that I have seen similar to this was worked around by updating the column to itself, then sync...not sure if this is the same thing you are running into, but it may be worth a try. See the Oracle Text FAQ - take special note of step c:
    ===============================
    Creates the index without populating it.
    SQL > CREATE INDEX GLOBALINDEXEDBLOB_I
    ON ODMM_CONTENTSTORE ("GLOBALINDEXEDBLOB" ) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS (' stoplist CTXSYS.DEFAULT_STOPLIST storage IFS_DEF_STORAGE section group IFS_SECTION_GROUP wordlist IFS_DEF_WORDLIST memory 32000000 filter IFS_DEF_FILTER format column FORMAT charset column CHARACTERSET lexer IFS_GLOBAL_LEXER language column LANGUAGE nopopulate');
    b. Mark globalindexedblob column in every row as updated.
    SQL > update odmm_contentstore set globalindexedblob = globalindexedblob;
    c. Sync the index. If you skipped the previous step, then this step does not index content that existed prior to index creation in step a.
    SQL > exec ctx_ddl.sync_index('GLOBA[i]Long postings are being truncated to ~1 kB at this time.

  • Is a Full Text Index search case sensitive or not in SQL Server 2012?

    I setup full text index on my contact table and am attempting to run a search on it using the following query:
    SELECT *
    FROM sysdba.Contact C
    WHERE CONTAINS(C.FirstName, 'Test')
    OR CONTAINS(C.LastName, 'Test')
    The problem is it's clearly running a case sensitive search. I did a quick search to find out how to change it to be case in-sensitive and found two pages (both for SQL Server 2012) with conflicting answers:
    1 - MSDN - "Query with Full-Text Search" - http://msdn.microsoft.com/en-us/library/ms142583(v=sql.110).aspx
    Case sensitivity
    Full-text search queries are case-insensitive. However, in Japanese, there are multiple phonetic orthographies in which the concept of orthographic normalization is akin to case insensitivity (for example, kana = insensitivity). This type of orthographic normalization
    is not supported.
    1 - TechNet - "Full-Text Search (SQL Server)" - http://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx
    Full-text queries are
    not case-sensitive. For example, searching for "Aluminum" or "aluminum" returns the same results.
    Can someone please explain this? Is it possible to do it without it being case sensitive? If yes, how?
    (Sorry, I couldn't make those links b/c TechNet hasn't verified my account)
    Thank you for your time and help,
    Hanan

    Whats the collation setting for the columns? try using a case insensitive collation as below
    SELECT *
    FROM sysdba.Contact C
    WHERE CONTAINS(C.FirstName COLLATE SQL_Latin1_General_CP1_CI_AS, 'Test')
    OR CONTAINS(C.LastName COLLATE SQL_Latin1_General_CP1_CI_AS, 'Test')
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs

  • Multiple text indexes on a single database

    Hi,
    We want to enable text search on one of our databases. Due to the specificity of the database we want to use a custom thesaurus.
    I would like to know if there's a way to create different text indexes using different thesaurus and then specify the index to be used in the query(similar to oracle sql hints).
    Thanks,
    Uma

    I don't know how often your data changes or how soon that data needs to be searchable or whether there can be any down time. If you can run a nightly procedure, during which time the data would not be searchable, you can have that procedure synchronize the index, then check all of the indexed tokens against those in your financial terms and those in your stoplist, then add any of the tokens that are not financial terms to your stoplist, then drop and rebuid the index. The new documents will then be searchable. It appears that, in order for the new stopwords to be used, the index must be dropped and recreated, not just rebuilt or synchronized. Please see the example below.
    SCOTT@10gXE> CREATE TABLE financial_terms
      2    (word VARCHAR2 (60))
      3  /
    Table created.
    SCOTT@10gXE> INSERT ALL
      2  INTO financial_terms VALUES ('account')
      3  INTO financial_terms VALUES ('balance')
      4  INTO financial_terms VALUES ('bank')
      5  INTO financial_terms VALUES ('deposit')
      6  INTO financial_terms VALUES ('finance')
      7  INTO financial_terms VALUES ('loan')
      8  INTO financial_terms VALUES ('withdraw')
      9  SELECT * FROM DUAL
    10  /
    7 rows created.
    SCOTT@10gXE> CREATE TABLE financial_documents
      2    (document CLOB)
      3  /
    Table created.
    SCOTT@10gXE> EXEC CTX_DDL.CREATE_STOPLIST ('non_financial')
    PL/SQL procedure successfully completed.
    SCOTT@10gXE> CREATE INDEX financial_idx ON financial_documents (document)
      2  INDEXTYPE IS CTXSYS.CONTEXT
      3  PARAMETERS ('STOPLIST non_financial')
      4  /
    Index created.
    SCOTT@10gXE> CREATE OR REPLACE PROCEDURE check_words
      2  AS
      3  BEGIN
      4    CTX_DDL.SYNC_INDEX ('financial_idx');
      5    FOR r IN
      6        (SELECT token_text
      7         FROM      dr$financial_idx$i,
      8             (SELECT UPPER (word) AS word
      9              FROM      financial_terms
    10              UNION ALL
    11              SELECT UPPER (spw_word) AS word
    12              FROM      ctx_stopwords
    13              WHERE  spw_stoplist = 'NON_FINANCIAL')
    14         WHERE  token_text = word (+)
    15         AND      word IS NULL)
    16    LOOP
    17        CTX_DDL.ADD_STOPWORD ('NON_FINANCIAL', r.token_text);
    18    END LOOP;
    19    EXECUTE IMMEDIATE 'DROP INDEX financial_idx';
    20    EXECUTE IMMEDIATE
    21        'CREATE INDEX financial_idx ON financial_documents (document)
    22         INDEXTYPE IS CTXSYS.CONTEXT
    23         PARAMETERS (''STOPLIST non_financial'')';
    24  END check_words;
    25  /
    Procedure created.
    SCOTT@10gXE> SHOW ERRORS
    No errors.
    SCOTT@10gXE> INSERT ALL
      2  INTO financial_documents VALUES ('bank account')
      3  INTO financial_documents VALUES ('loan application')
      4  INTO financial_documents VALUES ('test of other words')
      5  SELECT * FROM DUAL
      6  /
    3 rows created.
    SCOTT@10gXE> COMMIT
      2  /
    Commit complete.
    SCOTT@10gXE> EXECUTE check_words
    PL/SQL procedure successfully completed.
    SCOTT@10gXE> SELECT spw_word
      2  FROM   ctx_stopwords
      3  WHERE  spw_stoplist = 'NON_FINANCIAL'
      4  /
    SPW_WORD
    APPLICATION
    OF
    OTHER
    TEST
    WORDS
    SCOTT@10gXE> SELECT token_text FROM dr$financial_idx$i
      2  /
    TOKEN_TEXT
    ACCOUNT
    BANK
    LOAN
    SCOTT@10gXE> SELECT * FROM financial_documents
      2  WHERE CONTAINS (document, 'account OR loan OR test') > 0
      3  /
    DOCUMENT
    bank account
    loan application
    SCOTT@10gXE>

  • Text Index works fine consistently with Table, but not on underlying View

    Hi,
    We are facing weird issue relating to Oracle Text Indexes. Search using Oracle Text Index
    works fine on a Table, but when running query on View it gives sometimes (not consistently)
    ORA-20000: Oracle Text error:
    DRG-10849: catsearch does not support functional invocation
    DRG-10599: column is not indexed
    Sometimes it works.
    All of the below steps are run using User IR2OWNER:
    STEP 1: Table CPF_CUSTOMER created as follows (3 Non Text Indexes defined at time of creation )
    **Please note no Public Synonym is created for this Table**
    ** There is already another Table by same name CPF_CUSTOMER under different Owner (CDROWNER)
    and that Table has Public Synonym CPF_CUSTOMER created. Other Table CPF_CUSTOMER does not
    have any Views **
    create table CPF_CUSTOMER
    CPF_CUSTOMER_UUID NUMBER(20) not null,
    SAP_ID VARCHAR2(10 CHAR) not null,
    IRIS2_ID VARCHAR2(7 CHAR),
    NAME VARCHAR2(70 CHAR) not null,
    DRAFT_IND NUMBER(1) not null,
    ACTIVE_IND NUMBER(1) not null,
    REPLACED_BY_CUST VARCHAR2(10 CHAR),
    CRE_DT_GMT DATE,
    CRE_DT_LOC DATE,
    TIME_ZONE VARCHAR2(3 CHAR),
    CRE_USR VARCHAR2(8 CHAR),
    CHG_DT_GMT DATE,
    CHG_DT_LOC DATE,
    CHG_TIME_ZONE VARCHAR2(3 CHAR),
    CHG_USR VARCHAR2(8 CHAR),
    VFY_DT_GMT DATE,
    VFY_DT_LOC DATE,
    VFY_USR VARCHAR2(8 CHAR),
    DIVISION VARCHAR2(20 CHAR),
    SALES_ADMIN VARCHAR2(3 CHAR),
    MF_CUST_CDE VARCHAR2(14 CHAR),
    CR_CTRL_OFCE VARCHAR2(3 CHAR),
    DEFAULT_INV_CCY VARCHAR2(3 CHAR),
    AUTOBILL_OVRRD_IND NUMBER(1) not null,
    AUTOBILL NUMBER(1) not null,
    AUTOPRT_OVRRD_IND NUMBER(1) not null,
    AUTOPRT NUMBER(1) not null,
    AVE_PYMT_DAY NUMBER(3),
    TTL_INV_VAL NUMBER(12,2),
    INHERIT_CR_TERM_ASSGMT NUMBER(1) not null,
    NORMALIZED_NME VARCHAR2(70 CHAR),
    OB_PYMT_OFCE VARCHAR2(3 CHAR),
    IB_PYMT_OFCE VARCHAR2(3 CHAR),
    CGO_SMART_ID VARCHAR2(20 CHAR),
    REC_UPD_DT TIMESTAMP(6),
    NCPF_CUST_ID VARCHAR2(7) not null,
    CPF_CUST_LEVEL_UUID NUMBER(20) not null
    tablespace DBCPFP1_LG_DATA LOGGING;
    CREATE UNIQUE INDEX CPF_CUSTOMERI1 ON CPF_CUSTOMER
    (SAP_ID ASC) TABLESPACE DBCPFP1_LG_INDX;
    ALTER TABLE CPF_CUSTOMER
    ADD CONSTRAINT CPF_CUSTOMERI1 UNIQUE (SAP_ID);
    CREATE UNIQUE INDEX CPF_CUSTOMERI2 ON CPF_CUSTOMER
    (CPF_CUSTOMER_UUID ASC) TABLESPACE DBCPFP1_LG_INDX;
    ALTER TABLE CPF_CUSTOMER
    ADD CONSTRAINT CPF_CUSTOMERI2 UNIQUE (CPF_CUSTOMER_UUID);
    CREATE INDEX CPF_CUSTOMER_IDX2 ON CPF_CUSTOMER (UPPER(NAME))
    TABLESPACE DBCPFP1_LG_INDX;
    STEP 2: Create View CPF_CUSTOMER_RVW on above Table (and Public Synonym on View)
    This View is created under same OWNER as Table created in STEP 1 (IR2OWNER)
    create or replace view cpf_customer_rvw as
    select
    CPF_CUSTOMER_UUID,
    SAP_ID,
    IRIS2_ID,
    NAME,
    DRAFT_IND,
    ACTIVE_IND,
    REPLACED_BY_CUST,
    CRE_DT_GMT,
    CRE_DT_LOC,
    TIME_ZONE,
    CRE_USR,
    CHG_DT_GMT,
    CHG_DT_LOC,
    CHG_TIME_ZONE,
    CHG_USR,
    VFY_DT_GMT,
    VFY_DT_LOC,
    VFY_USR,
    DIVISION,
    SALES_ADMIN,
    MF_CUST_CDE,
    CR_CTRL_OFCE,
    DEFAULT_INV_CCY,
    AUTOBILL_OVRRD_IND,
    AUTOBILL,
    AUTOPRT_OVRRD_IND,
    AUTOPRT,
    AVE_PYMT_DAY,
    TTL_INV_VAL,
    INHERIT_CR_TERM_ASSGMT,
    NORMALIZED_NME,
    OB_PYMT_OFCE,
    IB_PYMT_OFCE,
    CGO_SMART_ID,
    NCPF_CUST_ID,
    CPF_CUST_LEVEL_UUID,
    REC_UPD_DT
    from CPF_CUSTOMER;
    CREATE OR REPLACE PUBLIC SYNONYM CPF_CUSTOMER_RVW FOR CPF_CUSTOMER_RVW;
    STEP 3: Insert Test row
    insert into cpf_customer (CPF_CUSTOMER_UUID, SAP_ID, IRIS2_ID, NAME, DRAFT_IND, ACTIVE_IND, REPLACED_BY_CUST, CRE_DT_GMT, CRE_DT_LOC, TIME_ZONE, CRE_USR, CHG_DT_GMT, CHG_DT_LOC, CHG_TIME_ZONE, CHG_USR, VFY_DT_GMT, VFY_DT_LOC, VFY_USR, DIVISION, SALES_ADMIN, MF_CUST_CDE, CR_CTRL_OFCE, DEFAULT_INV_CCY, AUTOBILL_OVRRD_IND, AUTOBILL, AUTOPRT_OVRRD_IND, AUTOPRT, AVE_PYMT_DAY, TTL_INV_VAL, INHERIT_CR_TERM_ASSGMT, NORMALIZED_NME, OB_PYMT_OFCE, IB_PYMT_OFCE, CGO_SMART_ID, NCPF_CUST_ID, CPF_CUST_LEVEL_UUID, REC_UPD_DT)
    values (2.26283572796028E15, '6588125000', '6588125', 'S M Mooseen And Sons(PVT) Limited', 0, 1, '', to_date('15-03-2005 08:55:00', 'dd-mm-yyyy hh24:mi:ss'), to_date('15-03-2005 14:25:00', 'dd-mm-yyyy hh24:mi:ss'), 'IST', 'licr2', to_date('19-02-2007 00:33:00', 'dd-mm-yyyy hh24:mi:ss'), to_date('19-02-2007 06:03:00', 'dd-mm-yyyy hh24:mi:ss'), 'IST', 'BaseAdmi', to_date('15-03-2005 09:03:00', 'dd-mm-yyyy hh24:mi:ss'), to_date('15-03-2005 14:33:00', 'dd-mm-yyyy hh24:mi:ss'), 'ninwasa', '', '', 'SRI06588125000', '463', '', 0, 0, 0, 0, null, null, 0, 'SMMOOSEENANDSONSPVTLIMITED', '', '', '', '6588125', 109966195050333, '14-JAN-09 02.49.28.325774 PM');
    commit;
    STEP 4: Create Oracle Text Index on Table CPF_CUSTOMER
    EXEC CTX_DDL.DROP_PREFERENCE('CTXCAT_IR2_STORAGE');
    EXEC CTX_DDL.CREATE_PREFERENCE('CTXCAT_IR2_STORAGE', 'BASIC_STORAGE');
    EXEC CTX_DDL.SET_ATTRIBUTE('CTXCAT_IR2_STORAGE', 'I_INDEX_CLAUSE', 'TABLESPACE COMMON_SM_INDX COMPRESS 2');
    EXEC CTX_DDL.SET_ATTRIBUTE('CTXCAT_IR2_STORAGE', 'I_INDEX_CLAUSE', 'TABLESPACE COMMON_SM_INDX COMPRESS 2');
    EXEC CTX_DDL.SET_ATTRIBUTE('CTXCAT_IR2_STORAGE', 'K_TABLE_CLAUSE', 'TABLESPACE COMMON_SM_INDX COMPRESS 2');
    EXEC CTX_DDL.SET_ATTRIBUTE('CTXCAT_IR2_STORAGE', 'R_TABLE_CLAUSE', 'TABLESPACE COMMON_SM_INDX COMPRESS 2');
    EXEC CTX_DDL.SET_ATTRIBUTE('CTXCAT_IR2_STORAGE', 'I_ROWID_INDEX_CLAUSE', 'TABLESPACE COMMON_SM_INDX storage (INITIAL 5M)');
    -- Define IR2_AB_LEXER to handle Special Characters.
    EXEC ctx_ddl.drop_preference('IR2_AB_LEXER');
    EXEC ctx_ddl.create_preference('IR2_AB_LEXER', 'BASIC_LEXER');
    EXEC ctx_ddl.set_attribute ('IR2_AB_LEXER', 'printjoins', ',_!$~%?=({;|&+-:/)}.@`^');
    --Drop Indexes
    drop index CPF_CUSTOMER_DIDX1;
    -- CATSEARCH INDEX on CPF_CUSTOMER.NAME     
    CREATE INDEX CPF_CUSTOMER_DIDX1 ON CPF_CUSTOMER(NAME) INDEXTYPE IS CTXSYS.CTXCAT PARAMETERS ('STORAGE CTXCAT_IR2_STORAGE STOPLIST CTXSYS.EMPTY_STOPLIST LEXER IR2_AB_LEXER');
    commit;
    STEP 5: Run Query to use Oracle Text Index on Base Table (works fine always. No issues seen so far)
    SELECT a.sap_id||'|'||a.name||'|' CUSTOMER_STR
    FROM cpf_customer a
    WHERE (catsearch(a.name, 'Mooseen'||'*', '')>0);
    CUSTOMER_STR
    6588125000|S M Mooseen And Sons(PVT) Limited|
    STEP 6: Run Query to use Oracle Text Index on View created under Table (get below error periodically)
    ORA-20000: Oracle Text error:
    DRG-10849: catsearch does not support functional invocation
    DRG-10599: column is not indexed
    But it works sometimes as in STEP 5 and returns 1 row. It is never consistent. We would like to
    provide access to this Table using View only. That is why we would like to get this query working consistently
    using View.
    Any help or tips would be greatly appreciated
    Thanks
    Auro

    This is a known issue with CTXCAT indexes. Sometimes the optimizer will "drive" the query off another index, and request results from the CTXCAT index on a row-by-row basis ("does the row with rowid NNNN satisfy this CATSEARCH condition?"). That's known as a functional lookup, and is not supported by the CTXCAT indextype.
    The only solution is to try to persuade the optimizer to use a different plan which does not use a functional lookup. This can be achieved by the use of hints, or sometimes by collecting or deleting statistics on the table.

  • Exchange Server Information Store has encountered an error while executing a full-text index query

    Hi Team need help
    Exchange 2013 EAC doesnt show the databases and it gives message
    "Your request couldn't be completed. Please try again in a few minutes."
    Its a 9 Node DAG and I stopped and diabled Search and Search Host controller on all of them
    in the event viewer see a lot of Event id 1012
    Log Name:      Application
    Source:        MSExchangeIS
    Date:          4/1/2013 9:23:48 AM
    Event ID:      1012
    Task Category: General
    Level:         Error
    Keywords:      Classic
    User:          N/A
    Computer:      ex1301.dagdc.com
    Description:
    Exchange Server Information Store has encountered an error while executing a full-text index query ("and(or(itemclass:string("IPM.Note*", mode="and"), itemclass:string("IPM.Schedule.Meeting*", mode="and"), itemclass:string("IPM.OCTEL.VOICE*",
    mode="and"), itemclass:string("IPM.VOICENOTES*", mode="and")), subject:string("SearchQueryStxProbe*", mode="and"), folderid:string("48A300C7FBA4DA408B80EB019A1CE94900000000000E0000"))"). Error
    information: System.TimeoutException: Failed to open a channel.
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.ExecuteServiceCall(IProcessingEngineChannel& serviceProxy, Action`1 call, Int32 retryCount)
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.ExecuteSearchFlow(String flowName, Dictionary`2 inputData)
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.<ExecuteInternal>d__18.MoveNext()
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.<ExecuteSimple>d__a.MoveNext()
       at Microsoft.Exchange.Server.Storage.FullTextIndex.FullTextIndexQuery.ExecutePagedFullTextIndexQuery(Guid databaseGuid, Guid mailboxGuid, Int32 mailboxNumber, String query, CultureInfo culture, Guid correlationId, QueryLoggingContext loggingContext,
    PagedQueryResults pagedQueryResults)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.StoreFullTextIndexHelper.ExecuteFullTextIndexQuery(Context context, MailboxState mailboxState, QueryParameters queryParameters, PagedQueryResults pagedQueryResults, ExchangeId searchFolderId,
    SearchExecutionDiagnostics diagnostics)
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="MSExchangeIS" />
        <EventID Qualifiers="49156">1012</EventID>
        <Level>2</Level>
        <Task>1</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime="2013-04-01T16:23:48.000000000Z" />
        <EventRecordID>192599</EventRecordID>
        <Channel>Application</Channel>
        <Computer>ex1301.dagdc.com</Computer>
        <Security />
      </System>
      <EventData>
        <Data>and(or(itemclass:string("IPM.Note*", mode="and"), itemclass:string("IPM.Schedule.Meeting*", mode="and"), itemclass:string("IPM.OCTEL.VOICE*", mode="and"), itemclass:string("IPM.VOICENOTES*",
    mode="and")), subject:string("SearchQueryStxProbe*", mode="and"), folderid:string("48A300C7FBA4DA408B80EB019A1CE94900000000000E0000"))</Data>
        <Data>System.TimeoutException: Failed to open a channel.
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.ExecuteServiceCall(IProcessingEngineChannel&amp; serviceProxy, Action`1 call, Int32 retryCount)
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.ExecuteSearchFlow(String flowName, Dictionary`2 inputData)
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.&lt;ExecuteInternal&gt;d__18.MoveNext()
       at Microsoft.Exchange.Search.OperatorSchema.PagingImsFlowExecutor.&lt;ExecuteSimple&gt;d__a.MoveNext()
       at Microsoft.Exchange.Server.Storage.FullTextIndex.FullTextIndexQuery.ExecutePagedFullTextIndexQuery(Guid databaseGuid, Guid mailboxGuid, Int32 mailboxNumber, String query, CultureInfo culture, Guid correlationId, QueryLoggingContext loggingContext,
    PagedQueryResults pagedQueryResults)
       at Microsoft.Exchange.Server.Storage.StoreCommonServices.StoreFullTextIndexHelper.ExecuteFullTextIndexQuery(Context context, MailboxState mailboxState, QueryParameters queryParameters, PagedQueryResults pagedQueryResults, ExchangeId searchFolderId,
    SearchExecutionDiagnostics diagnostics)</Data>
        <Binary>5B444941475F4354585D000084000000FF09000000000000000268000000808A00100000000080CA00100000000080B200100000000080D200100000000030FF001000000000309F00100000000030DF001000000000B09D001000000000B0DD001000000000B0ED001000000000B08D001000000000B095001000000000B0A5001000000000</Binary>
      </EventData>
    </Event>

    Hi,
    Please reenable and start the search engine service and try again.
    The simillar case for your reference:
    http://social.technet.microsoft.com/Forums/en-US/exchangesvrgeneral/thread/4f43ef50-b71f-4ab3-8ced-70f1c36c5509
    Hope it is hlepful.
    Fiona Liao
    TechNet Community Support

  • ERROR while syncing the Text Index

    Hi All,
    We are facing an issue while syncing the text index on the table, and the error is below,
    System error: Plsql job execution is failed with error code -20000 and error message ORA-20000: Oracle Text error: DRG-10017: you must be CTXSYS to do this: SYNC
    We have granted the USER with CTXAPP and CTXSYS roles.
    We are scheduling the SYNC from the QUARTZ Scheduler and it happens for every 5 Minutes. We are getting this error in ADHOC Basis.
    Could anyone help us in solving the issue.
    Thanks.

    Hi
    to be able to run ctx_ddl.sync_index as a database job it is necessary to have explicit grants for ctx_ddl, the inheritance via the role ctxapp does not suffice.
    SQL> grant execute on ctxsys.ctx_ddl to <user_submitting_the_job>;
    -Edwin

  • Error while rebuilding a text index

    I am on Oracle 10.2.0.3 and HP UNIX 11i. I am rebuilding a text index (textidx1) online
    using:
    Alter index rebuild textidx1;
    If I do a query so index is used, I get:
    ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE
    Error goes away after index is completely rebuilt.
    Since I am rebuilding index online, this error should not occur, otherwise what
    Is the purpose of on line index rebuild? Can someone explain how to get rid
    Of the error. I cannot stop my application while rebuilding text indexes.

    With text indexes if one adds the workd online:
    alter index X_TEXT_OBJECT_VALUE rebuild online
    ERROR at line 1:
    ORA-29874: warning in the execution of ODCIINDEXALTER routine
    ORA-29960: line 1,
    DRG-10595: ALTER INDEX X_TEXT_OBJECT_VALUE failed
    DRG-10562: missing alter index parameter
    with normal indexes adding online does not give syntax error.

  • Can I shrink the size of a form text box based on the content?

    We are helping a customer migrate from some MS Word forms to use pdf forms.  We are screenscraping the data from an AS400 green screen system and populating these new pdf forms with data.  however some of the text boxes are in the middle of a sentence and the text box needs to be large enough to fit 50 characters but there are many times when the data we are entering is much less than 50.  The resulting document looks very strange with all of that extra white space in the middle of a sentence due to the size of the text box.
    So can we somehow shrink the size of the text box to fit the number of characters in the box?
    I considered making the box smaller and setting the font size to auto but I think that would look even more strange to have a word with smaller font in the middle of a sentence.
    Thanks,
    Trent

    Sorry, I should have mentioned I am using acrobat professional 9.  I see that I can change the size of the text field when I am designing the form but what I don't see is how to dynamically change the size of the text field based on what data is put inside it.
    Thanks,

Maybe you are looking for

  • How to configure sngle-disk RAID?

    970a-G46, bios 1.11, and would like to know if anyone else is having trouble configuring a single boot disk for RAID.  Along with my twin 500GB RAID 0 & two 320GB RAID 0 drives for applications and data I thought I was OK.  My last MSI mobo included

  • Automating the process of comparing two PDF file with the help of QTP(Automation Testing Tool)

    Can anybody help me with comparing the two pdf files with the help of QTP.I have Adobe Acrobat installed on my system and i have access to the API. Thanks, Varun Saini

  • During hibernate query error in OC4J 10.1.3.4

    Hi friends, We get following error during one of Transaction execution.. Anyone has idea abt this please let me know.. 2010-01-05 14:01:17,933(?:?) FATAL - java.lang.ClassCastException: oracle.jdbc.driver.T4CVarcharAccessor incompatible with java.io.

  • Personal Data not working for an employee in ESS

    Hai All, I have configured Personal Data in ESS. But, for a particular employee Personal Data is giving the below mentioned error when he edits the data. The error happens when he edits and clicks on Review or when he clicks on the dropdown for Natio

  • Change the pwd of the WBEM client:SLDAccess set to true but not available

    Hello, I checked on ABAP side with transaction SLDCHECK, everything fine. Then checked http://server:port/sld/ListServlet?bsview=true *Please find the log content below:* WARNING com.sap.lcr.cimsrv.ChangePasswordServlet: Password Change that service