Progressive relaxation matches ctxrule

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
"CORE     10.2.0.1.0     Production"
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Is progressive relaxation supported by matches with ctxrule indexes??

No, you can't use progressive relaxation with CTXRULE.

Similar Messages

  • Query using progressive relaxation take more time for execution

    HI Gurus,
    I am creating a query using context index and progressive relaxation
    I had started using progressive relaxation after getting inputs from forum {thread:id=2333942} . Using progressive relaxation takes more than 7 seconds for every query. Is there any way we can improve the performance of the query?
    create table test_sh4 (text1 clob,text2 clob,text3 clob);
    begin
       ctx_ddl.create_preference ('nd_mcd', 'multi_column_datastore');
       ctx_ddl.set_attribute
          ('nd_mcd',
           'columns',
           'replace (text1, '' '', '''') nd1,
            text1 text1,
            replace (text2, '' '', '''') nd2,
            text2 text2');
       ctx_ddl.create_preference ('test_lex1', 'basic_lexer');
       ctx_ddl.set_attribute ('test_lex1', 'whitespace', '/\|-_+');
       ctx_ddl.create_section_group ('test_sg', 'basic_section_group');
       ctx_ddl.add_field_section ('test_sg', 'text1', 'text1', true);
       ctx_ddl.add_field_section ('test_sg', 'nd1', 'nd1', true);
       ctx_ddl.add_field_section ('test_sg', 'text2', 'text2', true);
       ctx_ddl.add_field_section ('test_sg', 'nd2', 'nd2', true);
    end;
    create index IX_test_sh4 on test_sh4 (text3)   indextype is ctxsys.context   parameters    ('datastore     nd_mcd   lexer test_lex1 section group     test_sg') ;
    alter index IX_test_sh4 REBUILD PARAMETERS ('REPLACE SYNC (ON COMMIT)') ;-- sync index on every commit.
    SELECT SCORE(1) score,t.* FROM test_sh4 t WHERE CONTAINS (text3,  '
    <query>
    <textquery>
    <progression>
    <seq>{GIFT GRILL STAPLES CARD} within text1</seq>
    <seq>{GIFTGRILLSTAPLESCARD} within nd1</seq>
    <seq>{GIFT GRILL STAPLES CARD} within text2</seq>
    <seq>{GIFTGRILLSTAPLESCARD} within nd2</seq>
    <seq>((%GIFT% and %GRILL% and %STAPLES% and %CARD%)) within text1</seq>
    <seq>((%GIFT% and %GRILL% and %STAPLES% and %CARD%)) within text2</seq>
    <seq>((%GIFT% and %GRILL% and %STAPLES%) or (%GRILL% and %STAPLES% and %CARD%) or (%GIFT% and %STAPLES% and %CARD%) or (%GIFT% and %GRILL% and %CARD%)) within text1</seq>
    <seq>((%GIFT% and %GRILL% and %STAPLES%) or (%GRILL% and %STAPLES% and %CARD%) or (%GIFT% and %STAPLES% and %CARD%) or (%GIFT% and %GRILL% and %CARD%)) within text2</seq>
    <seq>((%STAPLES% and %CARD%) or (%GIFT% and %GRILL%) or (%GRILL% and %CARD%) or (%GIFT% and %CARD%) or (%GIFT% and %STAPLES%) or (%GRILL% and %STAPLES%)) within text1</seq>
    <seq>((%STAPLES% and %CARD%) or (%GIFT% and %GRILL%) or (%GRILL% and %CARD%) or (%GIFT% and %CARD%) or (%GIFT% and %STAPLES%) or (%GRILL% and %STAPLES%)) within text2</seq>
    <seq>((%GIFT% , %GRILL% , %STAPLES% , %CARD%)) within text1</seq>
    <seq>((%GIFT% , %GRILL% , %STAPLES% , %CARD%)) within text2</seq>
    <seq>((!GIFT and !GRILL and !STAPLES and !CARD)) within text1</seq>
    <seq>((!GIFT and !GRILL and !STAPLES and !CARD)) within text2</seq>
    <seq>((!GIFT and !GRILL and !STAPLES) or (!GRILL and !STAPLES and !CARD) or (!GIFT and !STAPLES and !CARD) or (!GIFT and !GRILL and !CARD)) within text1</seq>
    <seq>((!GIFT and !GRILL and !STAPLES) or (!GRILL and !STAPLES and !CARD) or (!GIFT and !STAPLES and !CARD) or (!GIFT and !GRILL and !CARD)) within text2</seq>
    <seq>((!STAPLES and !CARD) or (!GIFT and !GRILL) or (!GRILL and !CARD) or (!GIFT and !CARD) or (!GIFT and !STAPLES) or (!GRILL and !STAPLES)) within text1</seq>
    <seq>((!STAPLES and !CARD) or (!GIFT and !GRILL) or (!GRILL and !CARD) or (!GIFT and !CARD) or (!GIFT and !STAPLES) or (!GRILL and !STAPLES)) within text2</seq>
    <seq>((!GIFT , !GRILL , !STAPLES , !CARD)) within text1</seq>
    <seq>((!GIFT , !GRILL , !STAPLES , !CARD)) within text2</seq>
    <seq>((?GIFT and ?GRILL and ?STAPLES and ?CARD)) within text1</seq>
    <seq>((?GIFT and ?GRILL and ?STAPLES and ?CARD)) within text2</seq>
    <seq>((?GIFT and ?GRILL and ?STAPLES) or (?GRILL and ?STAPLES and ?CARD) or (?GIFT and ?STAPLES and ?CARD) or (?GIFT and ?GRILL and ?CARD)) within text1</seq>
    <seq>((?GIFT and ?GRILL and ?STAPLES) or (?GRILL and ?STAPLES and ?CARD) or (?GIFT and ?STAPLES and ?CARD) or (?GIFT and ?GRILL and ?CARD)) within text2</seq>
    <seq>((?STAPLES and ?CARD) or (?GIFT and ?GRILL) or (?GRILL and ?CARD) or (?GIFT and ?CARD) or (?GIFT and ?STAPLES) or (?GRILL and ?STAPLES)) within text1</seq>
    <seq>((?STAPLES and ?CARD) or (?GIFT and ?GRILL) or (?GRILL and ?CARD) or (?GIFT and ?CARD) or (?GIFT and ?STAPLES) or (?GRILL and ?STAPLES)) within text2</seq>
    <seq>((?GIFT , ?GRILL , ?STAPLES , ?CARD)) within text1</seq>
    <seq>((?GIFT , ?GRILL , ?STAPLES , ?CARD)) within text2</seq>
    </progression>
    </textquery>
    <score datatype="FLOAT" algorithm="default"/>
    </query>',1) >0 ORDER BY score(1) DESC

    Progressive relaxation works best when you're only selecting a limited number of rows. If you fetch ALL the rows which satisfy the query, then all the steps in the relaxation will have to run regardless.
    If you fetch - say - the first 10 results, then if the first step of the relaxation provides 10 results then there is no need to execute the next step (in fact, due to internal buffering, that won't be exactly true but it's conceptually correct).
    The simplest way to do this is reword the query as
    SELECT * FROM (
    ( SELECT SCORE(1) score,t.* FROM test_sh4 t WHERE CONTAINS (text3, '
    <query>
    <textquery>
    </textquery>
    <score datatype="FLOAT" algorithm="default"/>
    </query>',1) >0 ORDER BY score(1) DESC
    WHERE ROWNUM <= 10
    You've discovered that leading wild cards don't work too well unless you use SUBSTRING_INDEX. I would encourage you to avoid them altogether if possible, or push them down much lower in the progressive relaxation. Usually, GIFT% is a useful expression (matches GIFTS, GIFTED, etc), %GIFT% is generally no more effective.
    There are a lot of steps in your progressive relaxation. It you wanted to reduce the number of steps, you could change:
    <seq>((%GIFT% and %GRILL% and %STAPLES% and %CARD%)) within text1</seq>
    <seq>((%GIFT% and %GRILL% and %STAPLES% and %CARD%)) within text2</seq>
    to
    <seq>((%GIFT% and %GRILL% and %STAPLES% and %CARD%)*2) within text1 ACCUM ((%GIFT% and %GRILL% and %STAPLES% and %CARD%)) within text2</seq>
    I don't know if this would have any performance benefits - but it's worth trying it to see.

  • Progressive Relaxation with error

    Hi,
    I tried to use progress relaxation to calculate matching scores(between t1.album and t2.title) and store them into a table. However, after executing the following script, I got these errors:
    ERROR at line 1:
    ORA-29902: error in executing ODCIIndexStart() routine
    ORA-20000: Oracle Text error:
    DRG-50901: text query parser syntax error on line 1, column 34
    ORA-06512: at line 26
    And the outer cursor stopped at some point. I've been working on it for many days already, but I still can't figure it out...
    Oh, one more question: what is 'c' in the statement 'for c in (......)'? I got this from http://www.oracle.com/technology/products/text/htdocs/prog_relax.html, but I don't understand what it does...
    Thanks a lot!!!!!!
    Here is the script:
    DECLARE
    max_rows integer := 300000;
    counter integer := 0;
    current_album t1.album%TYPE;
    CURSOR album_cursor IS
         SELECT distinct album FROM t1;
    BEGIN
    OPEN album_cursor;
    LOOP
    FETCH album_cursor INTO current_album;
    EXIT WHEN album_cursor%NOTFOUND;
    for c in (select score(1) scr, aritst, Title from t2 where contains (Title, '
    <query>
    <textquery>'||'{'||current_album||'}'||'
    <progression>
    <seq><rewrite>transform((TOKENS, "{", "}", " "))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, "?{", "}", " "))</rewrite>/seq>
    <seq><rewrite>transform((TOKENS, "{", "}", "OR"))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, "?{", "}", "OR"))</rewrite></seq>
    </progression>
    </textquery>
    </query>
    ', 1) > 0)
    LOOP
    counter := counter + 1;
    INSERT INTO ALBUM_MATCHED(SEQNUM, SCORE, ARTIST, t2_TITLE, t1_ALBUM)
    VALUES(counter, c.scr, c.artist, c.Title, current_album);
    commit;
    EXIT when counter >= max_rows;
    END LOOP;
    END LOOP;
    CLOSE album_cursor;
    END;
    **************************************************************************************************************************************************

    Hi raford,
    I also suspect that it's a problem caused by special characters. That's why I defined the following skipjoins for the matching column indexes:
    exec CTX_DDL.CREATE_PREFERENCE ('spe_cha_lexer', 'BASIC_LEXER');
    exec CTX_DDL.SET_ATTRIBUTE('spe_cha_lexer', 'SKIPJOINS' , '\,\&\=\{\}\\\(\)\[\]\-\;\~\|\$\!\>\*\%\_''\<\:\?\.\+\/\"@#');
    create index t1_album_idx on t1 (album)
    indextype is ctxsys.context
    parameters ('lexer spe_cha_lexer wordlist wildcard_pref sync (on commit)');
    create index t2_title_idx on amazonData (title)
    indextype is ctxsys.context
    parameters ('lexer spe_cha_lexer wordlist wildcard_pref sync (on commit)');
    Here is the table structures of t1 and t2, and resultset table album_matched:
    create table t1(album varchar2(500));
    create table t2(artist varchar2(500), title varchar2(4000));
    create table album_matched(SEQNUM number, SCORE number, ARTIST varchar2(500), t2_TITLE varchar2(4000), t1_ALBUM varchar2(500));
    Here is some sample data:
    for t1:
    Madeline Porter
    Harry Porter
    ???? R & H ?????
    mandy's candy
    for t2.artist, you can put whatever. and for t2.title:
    Harry Porter
    Basically, you can put everything in t1.album and t2.artist and t2.title, since we downloaded these data from a website. Therefore, there might be a lot of special characters in it, some of which might be miscoded into english from French or some other languages.
    And I found the scoring is not right too...both table contain 'Harry Porter', but the matching score has only 68...don't know why...
    Thanks a lot!

  • Progressive  relaxation

    I need to progressively relax my query, however, what I want is as follows:
    If someone searched for say "Acrylic Crochet Throws" then
    - the results with exact match should come on top
    - followed by the match with stemming but all three words next to each other
    - then a near search with max span of 15
    - after this I want to repeat the above three conditions with combination of any two words i.e. "Acrylic Crochet", "Acrylic Throws" and "Crochet Throws"
    Similarly if the searched string as 4 words, then it should first search for all 4 words, then combination of 3 words, then combination of two words.
    Can someone guid me on how to achieve this
    Madhup

    In the example below, I have written a user-defined function to return the sequences for the progressive query relaxation. I wrote it to handle groups of up to four words. If you want more, just add more nested loops to the function. I included examples of what the function returns. I demonstated a query with a context index and contains, so that you can see that it works by the scores. However, I recommend that you use a ctxcat index and catsearch, as in the last query. There is a bug with context and contains not returning any rows if the first criteria of progressive query relaxation is not met and the optimizer uses the domain index.
    SCOTT@10gXE> -- table and data:
    SCOTT@10gXE> CREATE TABLE test_tab
      2    (test_col VARCHAR2 (50))
      3  /
    Table created.
    SCOTT@10gXE> INSERT ALL
      2  INTO test_tab VALUES ('acrylic crochet throws')
      3  INTO test_tab VALUES ('acrylic crochets throwing')
      4  INTO test_tab VALUES ('acrylic word2 crochet word4 throws')
      5  INTO test_tab VALUES ('acrylic crochet')
      6  INTO test_tab VALUES ('acrylic throws')
      7  INTO test_tab VALUES ('crochet throws')
      8  INTO test_tab VALUES ('acrylics crocheting')
      9  INTO test_tab VALUES ('acrylics throwing')
    10  INTO test_tab VALUES ('crocheting throw')
    11  INTO test_tab VALUES ('acrylic word2 crochet')
    12  INTO test_tab VALUES ('acrylic word2 throws')
    13  INTO test_tab VALUES ('crochet word2 throws')
    14  sELECT * FROM DUAL
    15  /
    12 rows created.
    SCOTT@10gXE> -- function:
    SCOTT@10gXE> CREATE OR REPLACE FUNCTION seqs
      2    (p_words        IN VARCHAR2)
      3    RETURN            VARCHAR2
      4  AS
      5    v_words            VARCHAR2 (32767) := LTRIM (RTRIM (p_words));
      6    v_result        VARCHAR2 (32767);
      7    v_spaces        INTEGER;
      8    v_string        VARCHAR2 (32767);
      9    TYPE t_varchar2 IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;
    10    t_words            t_varchar2;
    11  BEGIN
    12    WHILE INSTR (v_words, '     ') > 0 LOOP
    13        v_words := REPLACE (v_words, '  ', ' ');
    14    END LOOP;
    15    v_result := v_result || CHR(10) || '<seq>' || v_words || '</seq>';
    16    v_result := v_result || CHR(10) || '<seq>$' || REPLACE (v_words, ' ', ' $') || '</seq>';
    17    v_result := v_result || CHR(10) || '<seq>NEAR((' || REPLACE (v_words, ' ', ', ') || '), 15, TRUE)</seq>';
    18    v_spaces := LENGTH (v_words) - LENGTH (REPLACE (v_words, ' ', ''));
    19    IF v_spaces > 1 THEN
    20        v_string := v_words || ' ';
    21        FOR i IN 1 .. v_spaces + 1 LOOP
    22          t_words (i) := SUBSTR (v_string, 1, INSTR (v_string, ' ') - 1);
    23          v_string := SUBSTR (v_string, INSTR (v_string, ' ') + 1);
    24        END LOOP;
    25        FOR n IN REVERSE 1 .. v_spaces - 1 LOOP
    26          FOR x IN 1 .. 3 LOOP
    27            v_result := v_result || CHR(10) || '<seq>';
    28            v_string := '';
    29 
    30            FOR i IN 0 + 1 .. GREATEST (LEAST (v_spaces + 1 - n, v_spaces + 1), 0+1)
    31            LOOP
    32              IF n >= 1 THEN
    33             FOR j IN i + 1 .. GREATEST (LEAST (v_spaces + 2 - n, v_spaces + 1), i+1)
    34             LOOP
    35               IF n >= 2 THEN
    36                 FOR k IN j + 1 .. GREATEST (LEAST (v_spaces + 3 - n, v_spaces + 1), j+1)
    37                 LOOP
    38                   IF n >= 3 THEN
    39                  FOR l IN k + 1 .. GREATEST (LEAST (v_spaces + 4 - n, v_spaces + 1), k+1)
    40                  LOOP
    41                    v_string := v_string || t_words(i) || ' ' || t_words(j) || ' ' || t_words(k) || ' ' || t_words(l);
    42                    v_string := v_string || CHR(10) || 'OR ';
    43                  END LOOP;
    44                   ELSE
    45                  v_string := v_string || t_words(i) || ' ' || t_words(j) || ' ' || t_words(k);
    46                  v_string := v_string || CHR(10) || 'OR ';
    47                   END IF;
    48                 END LOOP;
    49               ELSE
    50                 v_string := v_string || t_words(i) || ' ' || t_words(j);
    51                 v_string := v_string || CHR(10) || 'OR ';
    52               END IF;
    53             END LOOP;
    54              ELSE
    55             v_string := v_string || t_words(i);
    56             v_string := v_string || CHR(10) || 'OR ';
    57              END IF;
    58            END LOOP;
    59 
    60            v_string := RTRIM (RTRIM (v_string, 'OR '), CHR(10));
    61            IF x = 2 THEN
    62              v_string := '$' || REPLACE (v_string, ' ', ' $');
    63            ELSIF x = 3 THEN
    64              v_string := 'NEAR(('
    65             || REPLACE (REPLACE (v_string, ' ', ','), CHR(10) || 'OR,',
    66                      '), 15, TRUE)' || CHR(10) || 'OR NEAR((')
    67             || '), 15, TRUE)';
    68            END IF;
    69            v_result := v_result || v_string;
    70            v_result := v_result || '</seq>';
    71          END LOOP;
    72        END LOOP;
    73    END IF;
    74    RETURN LTRIM (v_result, CHR(10));
    75  END seqs;
    76  /
    Function created.
    SCOTT@10gXE> sHOW ERRORS
    No errors.
    SCOTT@10gXE> -- examples of what seqs function returns:
    SCOTT@10gXE> VARIABLE g_words VARCHAR2(2000)
    SCOTT@10gXE> EXEC :g_words := 'word1 word2 word3 word4'
    PL/SQL procedure successfully completed.
    SCOTT@10gXE> SELECT seqs (:g_words) FROM DUAL
      2  /
    SEQS(:G_WORDS)
    <seq>word1 word2 word3 word4</seq>
    <seq>$word1 $word2 $word3 $word4</seq>
    <seq>NEAR((word1, word2, word3, word4), 15, TRUE)</seq>
    <seq>word1 word2 word3
    OR word1 word2 word4
    OR word1 word3 word4
    OR word2 word3 word4</seq>
    <seq>$word1 $word2 $word3
    OR $word1 $word2 $word4
    OR $word1 $word3 $word4
    OR $word2 $word3 $word4</seq>
    <seq>NEAR((word1,word2,word3), 15, TRUE)
    OR NEAR((word1,word2,word4), 15, TRUE)
    OR NEAR((word1,word3,word4), 15, TRUE)
    OR NEAR((word2,word3,word4), 15, TRUE)</seq>
    <seq>word1 word2
    OR word1 word3
    OR word1 word4
    OR word2 word3
    OR word2 word4
    OR word3 word4</seq>
    <seq>$word1 $word2
    OR $word1 $word3
    OR $word1 $word4
    OR $word2 $word3
    OR $word2 $word4
    OR $word3 $word4</seq>
    <seq>NEAR((word1,word2), 15, TRUE)
    OR NEAR((word1,word3), 15, TRUE)
    OR NEAR((word1,word4), 15, TRUE)
    OR NEAR((word2,word3), 15, TRUE)
    OR NEAR((word2,word4), 15, TRUE)
    OR NEAR((word3,word4), 15, TRUE)</seq>
    SCOTT@10gXE> EXEC :g_words := 'Acrylic Crochet Throws'
    PL/SQL procedure successfully completed.
    SCOTT@10gXE> SELECT seqs (:g_words) FROM DUAL
      2  /
    SEQS(:G_WORDS)
    <seq>Acrylic Crochet Throws</seq>
    <seq>$Acrylic $Crochet $Throws</seq>
    <seq>NEAR((Acrylic, Crochet, Throws), 15, TRUE)</seq>
    <seq>Acrylic Crochet
    OR Acrylic Throws
    OR Crochet Throws</seq>
    <seq>$Acrylic $Crochet
    OR $Acrylic $Throws
    OR $Crochet $Throws</seq>
    <seq>NEAR((Acrylic,Crochet), 15, TRUE)
    OR NEAR((Acrylic,Throws), 15, TRUE)
    OR NEAR((Crochet,Throws), 15, TRUE)</seq>
    SCOTT@10gXE> -- query with context index and contains
    SCOTT@10gXE> -- (not recommended, just used to show score)
    SCOTT@10gXE> CREATE INDEX test_idx1 ON test_tab (test_col)
      2  INDEXTYPE IS CTXSYS.CONTEXT
      3  /
    Index created.
    SCOTT@10gXE> SELECT test_col, score (1)
      2  FROM   test_tab
      3  WHERE  CONTAINS (test_col,
      4                   '<query>
      5                   <textquery>
      6                     <progression>'
      7                     || seqs (:g_words)
      8                     || '</progression>
      9                   </textquery>
    10                 </query>',
    11                   1) > 0
    12  /
    TEST_COL                                             SCORE(1)
    acrylic crochet throws                                     84
    acrylic crochets throwing                                  67
    acrylic word2 crochet word4 throws                         54
    acrylic crochet                                            34
    acrylic throws                                             34
    crochet throws                                             34
    acrylics crocheting                                        17
    acrylics throwing                                          17
    crocheting throw                                           17
    acrylic word2 crochet                                       3
    acrylic word2 throws                                        3
    crochet word2 throws                                        3
    12 rows selected.
    SCOTT@10gXE> -- query with ctxcat index and catsearch (recommended):
    SCOTT@10gXE> CREATE INDEX test_idx2 ON test_tab (test_col)
      2  INDEXTYPE IS CTXSYS.CTXCAT
      3  /
    Index created.
    SCOTT@10gXE> SELECT test_col
      2  FROM   test_tab
      3  WHERE  CATSEARCH (test_col,
      4                   '<query>
      5                   <textquery>
      6                     <progression>'
      7                     || seqs (:g_words)
      8                     || '</progression>
      9                   </textquery>
    10                 </query>',
    11                   NULL) > 0
    12  /
    TEST_COL
    acrylic crochet throws
    acrylic crochets throwing
    acrylic word2 crochet word4 throws
    acrylic crochet
    acrylic throws
    crochet throws
    acrylics crocheting
    acrylics throwing
    crocheting throw
    acrylic word2 crochet
    acrylic word2 throws
    crochet word2 throws
    12 rows selected.
    SCOTT@10gXE>

  • Please help explain strange behaviour of progressive relaxation..

    Hello
    I am building theo Oracle text querry and I stumbled on a behaviour which I cannot explain...
    here is the topo:
    I have created a synonym thusly:
    ctx_thes.create_relation('GR_THESAURUS','LEBOURGNEUF','SYN','BOURGNEUF');
    when I issue this select:
    SELECT      SCORE(1) NIVEAU_RECHERCHE, NOM,NO_MATRC,NO_NOM_REGST
    FROM DUMMY
    WHERE CONTAINS(nom, 'SYN(LEBOURGNEUF, GR_THESAURUS)', 1) > 0 ;
    I get the expected result set which containsentries with either 'LEBOURGNEUF' or 'BOURGNEUF'. So far so good.
    Now, when I combine search criterias using progressive relaxation, thus:
    SELECT SCORE(1) NIVEAU_RECHERCHE, DUMMY.NO_MATRC,DUMMY.NO_NOM_REGST,DUMMY.NOM
    FROM DUMMY
    WHERE CONTAINS(nom, '<query>
    <textquery lang="FRENCH" grammar="CONTEXT">LEBOURGNEUF golf
    <progression>
    <seq><rewrite>transform((TOKENS, "{", "}", "AND"))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, "{", "}", "OR"))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, "SYN(", ",GR_THESAURUS)", "OR"))</rewrite></seq>
    </progression>
    </textquery>
    <score datatype="INTEGER" algorithm="DEFAULT"/>
    </query>', 1) > 0;
    I do NOT get any results matching synonym 'BOURGNEUF'.. only those with 'LEBOURGNEUF' are returned...
    further, if I intentionaly make a syntax error in the line
    <seq><rewrite>transform((TOKENS, "SYN(", ",GR_THESAURUS)", "OR"))</rewrite></seq>
    say like this:
    <seq><rewrite>transform((TOKENS, "xSYN(", ",GR_THESAURUS)", "OR"))</rewrite></seq>
    no error is returned and I get the same result set...
    so this leads me to conclude that only the first two lines of the query are parsed/executed...
    does anyone here have any ideas what is going one here?
    in the preceding quire I neeed to add
                                                      <seq><rewrite>transform((TOKENS, "SYN(", ",GR_THESAURUS)", "AND"))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, "SYN(", ",GR_THESAURUS)", "OR"))</rewrite></seq>
    and possibly
    <seq><rewrite>transform((TOKENS, "NT(", ",2,GR_THESAURUS)", "OR"))</rewrite></seq>
    can this be done???
    why is there no errors when I execute the query (in sqldeveloper) ???
    any hints will be greatly appreciated!
    Cheers
    Edited by: user8848610 on 2009-10-29 07:46

    now it works... although the simpler and cleaner solution of using transform would have been perfect, this function does a somewhat adequate job... I put it here so maybe it will help others ;)
         FUNCTION BuildSearchPredicate (texte IN NOM_ASSJT.NOM%TYPE) RETURN VARCHAR2 IS
         sSQL VARCHAR2(5000);
         sSeq1 VARCHAR2(1000);
         sSeq2 VARCHAR2(1000);
         sSeq3 VARCHAR2(1000);
         iFirst NUMBER(1);
         iPosition NUMBER;
         iToken NUMBER;
         CURSOR curWords(line_text IN VARCHAR2)      IS      
                   select regexp_substr(line_text, '[^ ]+', 1, level) word
                   from dual
                   connect by regexp_substr(line_text, '[^ ]+', 1, level) is not null;
         BEGIN
         sSQL := sSQL || '<query><textquery lang="FRENCH" grammar="CONTEXT"><progression> ';
         sSeq1 := '';
         iFirst := 1;
         iToken := 0;
         FOR r_curWord IN curWords(texte)
         LOOP
         iToken := iToken + 1;
         IF iFirst = 0 THEN
                   sSeq1 := sSeq1 || ' AND {' || trim(r_curWord.word) || '}';
                   sSeq2 := sSeq2 || ' OR {' || trim(r_curWord.word) || '}';
                   sSeq3 := sSeq3 || ' OR SYN(' || trim(r_curWord.word) || ',GR_THESAURUS)';
              ELSE
                   sSeq1 := '{' || trim(r_curWord.word) || '}';
                   sSeq2 := '{' || trim(r_curWord.word) || '}';
                   sSeq3 := 'SYN(' || trim(r_curWord.word) || ',GR_THESAURUS)';
                   iFirst := 0;
              END IF;
         END LOOP;
         sSQL := sSQL || '<seq>' || sSeq1 || '</seq>';
         iPosition := instr(sSeq1, ' AND ');
         IF instr(sSeq1, ' AND ',iPosition + 1) > 0 THEN -- we must have at least 2 AND operator for this to make sense
              WHILE iPosition > 0
              LOOP
    IF instr(substr(sSeq1, iPosition + 5), ' AND ') > 0 THEN
    sSQL := sSQL || '<seq>' || substr(sSeq1, iPosition + 5) || '</seq>';
    END IF;
                   iPosition := instr(sSeq1, ' AND ', iPosition + 1);
              END LOOP;
         END IF;
         IF iToken > 1 THEN -- no use in having OR if there is only one word
              sSQL := sSQL || '<seq>' || sSeq2 || '</seq>';
         END IF;
         sSQL := sSQL || '<seq>' || sSeq3 || '</seq>';
         RETURN sSql;
         END BuildSearchPredicate;     
    END GR_RECH;
    this will combine search words using AND and OR and SYN like so:
    SELECT GR_RECH.BuildSearchPredicate('LEBOURGNEUF GOLF') FROM DUAL;
    will result in :
    <query><textquery lang="FRENCH" grammar="CONTEXT"><progression> <seq>{LEBOURGNEUF} AND {GOLF}</seq><seq>{LEBOURGNEUF} OR {GOLF}</seq><seq>SYN(LEBOURGNEUF,GR_THESAURUS) OR SYN(GOLF,GR_THESAURUS)</seq>
    thanks for you help!
    cheers
    gth

  • Search inside sections with progressive relaxation

    Hi,
    I am trying to search for the keywords within the XML. So my search will be made on a particular sections inside the XML. Say, i will search for the keyword Dog inside the tag <Animal>.
    My questions are,
    1. Is there any other way we can do it without using the within operator?
    2. If we are using within, will i be able to apply the progressive relaxation in the search keywords?
    3. Also, what is the use of SDATA. if i am using sdata, do i define all the tags in the XML (the tags in the XML are not generic and it may vary for each XML)?
    Thanks in advance.
    Regards,
    Loganathan

    I am trying to search for the keywords within the XML. So my search will be made on a particular sections inside the XML. Say, i will search for the keyword Dog inside the tag <Animal>.
    1. Is there any other way we can do it without using the within operator?Not that I know of. If you search without the within operator, then it would find the word in any tag.
    2. If we are using within, will i be able to apply the progressive relaxation in the search keywords?Yes.
    3. Also, what is the use of SDATA. if i am using sdata, do i define all the tags in the XML (the tags in the XML are not generic and it may vary for each XML)?Sdata is for structured data, not unstructured text data. The sdata needs to be in a separate column. If your tags are variable, then you can use ctxsys.auto_section_group.
    A lot of what you are asking about was discussed and demonstrated in the following recent thread:
    Query Templates and WITHIN

  • Oracle Text progressive relaxation

    hello,
    We're in the process of evaluating Oracle Text search engine so far so good until yesterday when we added Synonyms to our progressive search criterion and it stop working depending on where we place the synonym search. If we place it first everything else stops working (stemming, fuzzy...) If we place it last then the synonym search stops working. I saw a reference to a bug in this conference that seemed similar to the problem, I believe it mentioned that it had been fixed in 10.2.0.3 (this is the version were on).
    The following is a sample of plsql code were executing
    select score(1), nm_resource, ADDR_RSRC_ST_LN_1, id_resource, ADDR_RSRC_CITY FROM caps_resource where
    CONTAINS (nm_resource,
         '<query>
         <textquery lang="ENGLISH" grammar="CONTEXT">' || res_name ||
         '<progression>
    <seq><rewrite>transform((TOKENS, ?{?, ?}?, ?AND?))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, ??{?, ?}?, ?AND?))</rewrite>/seq>
    <seq><rewrite>transform((TOKENS, ?{?, ?}?, ?OR?))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, ??{?, ?}?, ?OR?))</rewrite>/seq>
    <seq><rewrite>transform((TOKENS, ?{?, ?}?, ?ACCUM?))</rewrite></seq>
    <seq><rewrite>transform((TOKENS, ?{?, ?}?, ?NEAR?))</rewrite></seq>
    <seq>' || 'SYN(' || REPLACE('' || res_name || '', ' ', ',IMPACT_tst) AND SYN(') || ',IMPACT_tst)' || '</seq>
    </progression>
    </textquery>
    <score datatype="INTEGER" algorithm="default"/>
    </query>', 1)>0

    Here is a suggested alternative. I have used a syns function that I wrote for another user on another thread, that checks for all combinations of words that could amount to a synonym, up to the maximum number of words that you can specify as an input parameter. I have then used that in a separate contains clause and combined the score results, using the score derived from the synonym only when there is no score from the progressive rewrites, ordering by the progressive rewrites first. Also notice that the ordering must be done in an inner sub-query then the rows limited in an outer subquery. Otherwise it can select the first 100 rows, then order them, instead of the other way around, which can produce an entirely different result set.
    SCOTT@orcl_11g> CREATE TABLE caps_resource
      2    (nm_resource       VARCHAR2 (30))
      3  /
    Table created.
    SCOTT@orcl_11g> INSERT ALL
      2  INTO caps_resource VALUES ('Delagarza,Lorenzo')
      3  INTO caps_resource VALUES ('Diana De La Garza')
      4  INTO caps_resource VALUES ('De La Garza,Fred')
      5  INTO caps_resource VALUES ('somebody else')
      6  SELECT * FROM DUAL
      7  /
    4 rows created.
    SCOTT@orcl_11g> CREATE INDEX your_index ON caps_resource (nm_resource)
      2  INDEXTYPE IS CTXSYS.CONTEXT
      3  /
    Index created.
    SCOTT@orcl_11g> BEGIN
      2    CTX_THES.CREATE_THESAURUS ('impact_tst');
      3    CTX_THES.CREATE_RELATION ('impact_tst', 'Delagarza', 'SYN', 'De La Garza');
      4  END;
      5  /
    PL/SQL procedure successfully completed.
    SCOTT@orcl_11g> create or replace function syns
      2    (p_words in varchar2,
      3       p_thes     in varchar2,
      4       p_num     in number default 3) -- maximum number of words per synonym phrase
      5       return varchar2
      6  as
      7    v_words_in      varchar2 (32767) := ltrim (p_words) || ' ';
      8    v_words_out     varchar2 (32767);
      9  begin
    10    while instr (v_words_in, '  ') > 0 loop
    11        v_words_in := replace (v_words_in, '  ', ' ');
    12    end loop;
    13    while length (v_words_in) > 1
    14    loop
    15        for i in reverse 1 .. least (p_num, (length (v_words_in) - length (replace (v_words_in, ' ', ''))))
    16        loop
    17          if instr (ctx_thes.syn (substr (v_words_in, 1, instr (v_words_in, ' ', 1, i) - 1), p_thes), '|') > 0
    18            or i = 1 then
    19            v_words_out := v_words_out
    20            || ' AND ('
    21            || ctx_thes.syn (substr (v_words_in, 1, instr (v_words_in, ' ', 1, i) - 1), p_thes)
    22            || ')';
    23            v_words_in := substr (v_words_in, instr (v_words_in, ' ', 1, i) + 1);
    24            exit;
    25          end if;
    26        end loop;
    27    end loop;
    28    return ltrim (v_words_out, ' AND ');
    29  end syns;
    30  /
    Function created.
    SCOTT@orcl_11g> show errors
    No errors.
    SCOTT@orcl_11g> VARIABLE res_name VARCHAR2 (100)
    SCOTT@orcl_11g> EXEC :res_name := 'De La Garza'
    PL/SQL procedure successfully completed.
    SCOTT@orcl_11g> SELECT syns (:res_name, 'impact_tst') FROM DUAL
      2  /
    SYNS(:RES_NAME,'IMPACT_TST')
    ({DE LA GARZA}|{DELAGARZA})
    SCOTT@orcl_11g> SELECT the_score, nm_resource
      2  FROM   (select DECODE (score(1), 0, SCORE(2), SCORE(1)) AS the_score, nm_resource
      3            FROM   caps_resource
      4            where  CONTAINS (nm_resource,
      5            '<query>
      6            <textquery lang="ENGLISH" grammar="CONTEXT">' || :res_name ||
      7             '<progression>
      8                <seq><rewrite>transform((TOKENS, "{",  "}", "AND"))</rewrite></seq>
      9                <seq><rewrite>transform((TOKENS, "?{", "}", "AND"))</rewrite>/seq>
    10                <seq><rewrite>transform((TOKENS, "{",  "}", "OR"))</rewrite></seq>
    11                <seq><rewrite>transform((TOKENS, "?{", "}", "OR"))</rewrite>/seq>
    12                <seq><rewrite>transform((TOKENS, "{",  "}", "ACCUM"))</rewrite></seq>
    13                <seq><rewrite>transform((TOKENS, "{",  "}", "NEAR"))</rewrite></seq>
    14              </progression>
    15            </textquery>
    16            <score datatype="INTEGER" algorithm="default"/>
    17             </query>', 1) > 0
    18            OR     CONTAINS (nm_resource, syns (:res_name, 'impact_tst'), 2) > 0
    19            ORDER  BY SCORE (1) DESC, SCORE (2) DESC)
    20  WHERE  ROWNUM < 100
    21  /
    THE_SCORE NM_RESOURCE
            76 Diana De La Garza
            76 De La Garza,Fred
             5 Delagarza,Lorenzo
    SCOTT@orcl_11g>

  • Progressive relaxation doesn't progress

    I just discovered that in a contains() query with a <progression> tag and multiple <seq> conditions, the query does not return any results (ie, does not evaluate any subsequent conditions) if the first condition fails (ie, returns no rows).
    Is this the correct behavior? It seems like a bug to me. I dont see it mentioned in the documentation anywhere.
    Thanks,
    Rory

    If you use a ctxcat index and catsearch, instead of a context index and contains, the optimizer uses the domain index and returns the correct results quickly, as shown in the comparison below. The only bad thing about catsearch is that, as far as I know, the score function doesn't work with it.
    SCOTT@10gXE> CREATE TABLE presidents
      2    (id   NUMBER,
      3       name VARCHAR2(60))
      4  /
    Table created.
    SCOTT@10gXE> INSERT INTO presidents VALUES (1, 'William Jefferson Clinton')
      2  /
    1 row created.
    SCOTT@10gXE> BEGIN
      2    FOR i IN 1 .. 40 LOOP
      3        INSERT INTO presidents
      4        SELECT object_id, object_name
      5        FROM     all_objects;
      6    END LOOP;
      7  END;
      8  /
    PL/SQL procedure successfully completed.
    SCOTT@10gXE> SELECT COUNT(*) FROM presidents
      2  /
      COUNT(*)
        481081
    SCOTT@10gXE> CREATE INDEX presidents_idx
      2  ON presidents (name)
      3  INDEXTYPE IS CTXSYS.CONTEXT
      4  /
    Index created.
    SCOTT@10gXE> EXEC DBMS_STATS.GATHER_TABLE_STATS ('SCOTT', 'PRESIDENTS')
    PL/SQL procedure successfully completed.
    SCOTT@10gXE> SET TIMING ON
    SCOTT@10gXE> SET AUTOTRACE ON EXPLAIN
    SCOTT@10gXE> select id, name
      2  from   presidents
      3  where  contains(name,
      4                  '<query>
      5                  <textquery>
      6                    <progression>
      7                      <seq>{William} {Clinton}</seq>
      8                      <seq>{William} ; {Clinton}</seq>
      9                    </progression>
    10                  </textquery>
    11                   </query>',1) <> 0
    12  /
            ID NAME
             1 William Jefferson Clinton
    Elapsed: 00:01:35.74
    Execution Plan
    Plan hash value: 3740813417
    | Id  | Operation         | Name       | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT  |            | 23933 |   514K|   746  (35)| 00:00:09 |
    |*  1 |  TABLE ACCESS FULL| PRESIDENTS | 23933 |   514K|   746  (35)| 00:00:09 |
    Predicate Information (identified by operation id):
       1 - filter("CTXSYS"."CONTAINS"("NAME",'<query>
                  <textquery>                       <progression>
                  <seq>{William} {Clinton}</seq>                         <seq>{William} ;
                  {Clinton}</seq>                       </progression>
                   </textquery>                   </query>',1)<>0)
    SCOTT@10gXE> SET TIMING OFF
    SCOTT@10gXE> SET AUTOTRACE OFF
    SCOTT@10gXE> DROP INDEX presidents_idx
      2  /
    Index dropped.
    SCOTT@10gXE> CREATE INDEX presidents_idx
      2  ON presidents (name)
      3  INDEXTYPE IS CTXSYS.CTXCAT
      4  /
    Index created.
    SCOTT@10gXE> EXEC DBMS_STATS.GATHER_TABLE_STATS ('SCOTT', 'PRESIDENTS')
    PL/SQL procedure successfully completed.
    SCOTT@10gXE> SET TIMING ON
    SCOTT@10gXE> SET AUTOTRACE ON EXPLAIN
    SCOTT@10gXE> select id, name
      2  from   presidents
      3  where  catsearch(name,
      4                  '<query>
      5                  <textquery>
      6                    <progression>
      7                      <seq>{William} {Clinton}</seq>
      8                      <seq>{William} ; {Clinton}</seq>
      9                    </progression>
    10                  </textquery>
    11                   </query>',null) > 0
    12  /
            ID NAME
             1 William Jefferson Clinton
    Elapsed: 00:00:01.94
    Execution Plan
    Plan hash value: 777849224
    | Id  | Operation                   | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT            |                | 24160 |   519K|   486   (1)| 00:00:06 |
    |   1 |  TABLE ACCESS BY INDEX ROWID| PRESIDENTS     | 24160 |   519K|   486   (1)| 00:00:06 |
    |*  2 |   DOMAIN INDEX              | PRESIDENTS_IDX |       |       |            |          |
    Predicate Information (identified by operation id):
       2 - access("CTXSYS"."CATSEARCH"("NAME",'<query>                     <textquery>
                                     <progression>                         <seq>{William}
                  {Clinton}</seq>                         <seq>{William} ; {Clinton}</seq>
                           </progression>                     </textquery>
                  </query>',NULL)>0)
    SCOTT@10gXE>

  • Progressive relaxation doesn't execute all sequeces

    I' trying to execute the following query:
    select * from UNIMI_GA.ENTITA_RC entitarc0_ where CONTAINS(entitarc0_.VALORE_INDICIZZATO, '
    <query><textquery lang="ITALIAN" grammar="CONTEXT">
    <progression>
    <seq>$esame NEAR $microbiologiche</seq>
    <seq>$esame AND $microbiologiche</seq>
    <seq>$esame ACCUM $microbiologiche</seq>
    <seq>?esame ACCUM ?microbiologiche</seq>
    </progression>
    </textquery><score datatype="INTEGER" algorithm="DEFAULT"/></query>
    ', 1)>0
    Scenario 1
    There is no field VALORE_INDICIZZATO that contains both "esame" NEAR/AND "microbiologiche" (in exact/stemmed versions).
    But there are loads of records with that field containing "esame" or "microbiologiche".
    I would expect those records to be returned from this query. But this not happens. The only way I found to obtain what I want is deleting the first 2 seq nodes in the xml (those containing NEAR and AND operators).
    Scenario 2
    If I add a new record with both "esame" and "microbiologiche" in VALORE_INDICIZZATO and execute the query again, the query returns the last inserted record and all the records that contains "esame" or "microbiologiche".
    Is this behavioiur correct?
    Thanks
    Davide

    I believe bug 5060137 was introduced in 10.2.0.1 and fixed in the 10.2.0.3 patch set. I don't have access to Metalink, so I can't tell you exactly where to find the patch set, just that others have found it and used it to fix the problem. I imagine someone on Metalink can help you locate it.

  • Why does iTunes match start over and over and over throughout a day?

    iTunes Match not only restarts and re-does its magic from the ground up after "completing" its tasks Every Single Time I Open iTunes, but when it chooses to start it all over again, it redirects the dominant window to itself. In other words, when iTunes Match decides to start up YET AGAIN, it pulls me from whatever view of iTunes I may be looking at and features itself, announcing to me and the world that it has opted to begin analyzing my library yet one more time. Oh yes, iTunes Match, good for you, and thanks - however, I cannot get back to whatever view or organization I was just working in (say under the heading "Songs") because my iTunes program isn't equipped to get me back to where it just Yanked Me From For No Good Reason.
    I am a lifelong Mac user and Mac afficionado who is trying to keep the faith using a Late 2010 15" MacBook Pro, but ever since I decided to go all-in on the service formerly known as MobileMe it seems my Mac experience has been degrading progressively. iTunes Match, with it's constant re-starts, interrupted playback, inexplicably greyed-out and unplayable tracks and flat-out crashes, is nothing like what my Mac experience used to be. It's disappointing, and it's no advertisement for iTunes Radio.
    Currently considering whether to re-up iTunes Match or simply use a hard drive and forget about it for good.

    Hi Jim, thanks for the response. In answer to your questions,
    - I do not sign out of Match prior to closing iTunes
    - The Match process seems to be ongoing at intervals throughout the given day and while it's not in the "background" as I wish it was, I try not to pay attention to what it's doing. Therefore I would need to guess that there are many, many times I close iTunes when the "current" Match process is underway and not complete.
    - Yes, thanks for asking about the "Waiting" tracks. Yes, there are many and they remain as "Waiting" even after Match tells me its work here is through.
    - My internet connection varies, currently 7.59 down / 22.81 up.

  • Progression not yielding the desired result

    Hi
    I have written a text query using the progressive relaxation method. It is not giving me the desired results. Here are the query details:
    I have created an Intermedia index on a table with following specs:
    BEGIN
    CTX_DDL.DROP_PREFERENCE('CTXSYS.COMPANY_SEARCH_MULTI');
         CTX_DDL.CREATE_PREFERENCE('CTXSYS.COMPANY_SEARCH_MULTI', 'MULTI_COLUMN_DATASTORE');
         CTX_DDL.SET_ATTRIBUTE(     'CTXSYS.COMPANY_SEARCH_MULTI',
                        'columns',
                        'COMPANY,
                        DESC_N_PRODS,
                        PROD_DESC_N_PRODS,
                        PG_TITLE_GLUSR,
                        PG_KWD_DESC,
                        GEOGRAPHICAL_PROFILE,
                        GLUSR_DESC,
                        SUBCAT_DESC,
                        CTL_DESC,
                        SHORT_PROFILE,
                        LONG_PROFILE');
         CTX_DDL.DROP_SECTION_GROUP('CTXSYS.COMPANY_SEARCH_GROUP');
         CTX_DDL.CREATE_SECTION_GROUP('CTXSYS.COMPANY_SEARCH_GROUP', 'BASIC_SECTION_GROUP');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F1',     'COMPANY');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F2',     'DESC_N_PRODS');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F3',     'PROD_DESC_N_PRODS');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F4',     'PG_TITLE_GLUSR');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F5',     'PG_KWD_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F6',     'GEOGRAPHICAL_PROFILE');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F7',     'GLUSR_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F8',     'SUBCAT_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F9',     'CTL_DESC');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F10','SHORT_PROFILE');
         CTX_DDL.ADD_FIELD_SECTION('CTXSYS.COMPANY_SEARCH_GROUP' , 'F11','LONG_PROFILE');
         CTX_DDL.DROP_PREFERENCE('CTXSYS.IIL_LEXER');
         CTX_DDL.CREATE_PREFERENCE('CTXSYS.IIL_LEXER','BASIC_LEXER');
    CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_LEXER', 'INDEX_STEMS', 'ENGLISH');
         CTX_DDL.DROP_PREFERENCE('CTXSYS.IIL_FUZZY_PREF');
         CTX_DDL.CREATE_PREFERENCE('CTXSYS.IIL_FUZZY_PREF', 'BASIC_WORDLIST');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','FUZZY_MATCH','ENGLISH');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','FUZZY_SCORE','60');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','FUZZY_NUMRESULTS','100');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','SUBSTRING_INDEX','TRUE');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','PREFIX_INDEX','TRUE');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','PREFIX_MIN_LENGTH','1');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','PREFIX_MAX_LENGTH','3');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','WILDCARD_MAXTERMS','15000');
         CTX_DDL.SET_ATTRIBUTE('CTXSYS.IIL_FUZZY_PREF','STEMMER','ENGLISH');
    END;
    CREATE INDEX COMPANY_SEARCH_IM on COMPANY_SEARCH(DUMMY) INDEXTYPE IS
    CTXSYS.CONTEXT PARAMETERS
    ('DATASTORE CTXSYS.COMPANY_SEARCH_MULTI SECTION GROUP CTXSYS.COMPANY_SEARCH_GROUP MEMORY 50M
    LEXER CTXSYS.IIL_LEXER WORDLIST CTXSYS.IIL_FUZZY_PREF STOPLIST CTXSYS.IIL_STOPLIST');
    Now if I want to search for a string - acrylic crochet
    My progressive clause is as follows:
    <QUERY>
    <TEXTQUERY>
    <PROGRESSION>
    <SEQ>(acrylic crochet) within F2</SEQ>
    <SEQ>($acrylic $crochet) within F2</SEQ>
    <SEQ>(acrylic crochet) within F3</SEQ>
    <SEQ>($acrylic $crochet) within F3</SEQ>
    <SEQ>(NEAR((acrylic,crochet))) within F2</SEQ>
    </PROGRESSION>
    </TEXTQUERY>
    </QUERY>
    The data set has a record where F2 Contains following text:
    Manufacturers and exporters of yarns like acrylic yarn, viscose yarns, acrylic blended yarn, acrylic knitting yarn, spun yarn, blended yarns, braided thread, chenille yarn, cotton yarn, crochet yarn, dupion silk yarns etc
    My problem is that - This record is not coming in the search result.
    The record starts appearing if I use only NEAR Clause. as shown below:
    <QUERY>
    <TEXTQUERY>
    <PROGRESSION>
    <SEQ>(NEAR((acrylic,crochet))) within F2</SEQ>
    </PROGRESSION>
    </TEXTQUERY>
    </QUERY>
    Please advise what could be wrong - is my Index proper, or my progressive clause has some problem or there is something else which I have totally missed.
    Regards
    Madhup

    The discussion in the link below contains the same bug that you have encoutered and some workarounds.
    Re: progressive relaxation doesn't progress

  • Progressive dvcprohd footage to dvd export  - looks like youtube !

    this is gonna need a compressor / dvd studio pro guru to
    I have been searching the internet / forums etc etc for hours - have tried heaps of suggested settings but just cant get a good result - I am on a brand new mac pro quad core - the latest Final cut studio with all latest software updates.
    my fcp timelines look beautiful - cinema desktop preview looks great.
    sending to compressor from my dvcprohd ntsc progressive fc timeline - using settings under the dvd tab - mpg 2 and ac3.
    but after running through compressor:
    i am getting hideous stair stepping. Any small line on the screen that crosses the horizontal at an angle (ie not flat) looks awful.
    The video looks like youtube. washed out - no macro blocking - but stair stepping / herringbone is off the scale-after reviewing the dvd and raw mpg 2 files both on the monitor and on a tv.
    As far as i can tell -There shouldnt be any interlacing issues because interlacing shouldnt happen - i shoot and work progressive all the way through my work flow - and all my sequences are set up as progressive at the correct frame rates.
    is this a downscaling issue?
    the format is set up correctly with frame rate and progressive settings matching my source
    after trying the standard best quality settings and getting youtube results:
    i tried: cbr 7 mbs , (its only 42 mins of video) - from my limited research on the forums it appears that cbr at a high bit rate works better for top quality dvds than vbr 2 pass - which seems counter intuitive. please correct me if i am wrong. 2 pass vbr at similar bit rates gives me no noticeable improvement in quality.
    frame controls on -resize filter better
    output fields same as source
    deinterlace fast (i really dont know why this option is there as i am working prog all the way through
    but i suspect compressor may be trying to deinterlace my prog footage?)
    adaptive details on and off have bene tried
    100% duration relative to source.
    I have been trying for 3 days to get a good result and am literally pulling my hair out. I have 8 test dvds - nothing looks right.
    i suspect a bug in compressor - i have read a few posts about similar items - have tried a few suggested settings - and they havent worked. Am considering looking at another product (bit vice / sorenson) if i cant get this resolved - but maybe i am missing something simple.
    i am even reading about people getting better results through IDVD... which would indicate a compressor bug- perhaps..

    Try exporting from FCP timeline to selfcontained QuickTime file first, and processing this file with Compressor. Report if there is any difference, please. I am asking because I just found similar bug considering HDV 1080i50 format.

  • Order of words, fuzzy and utl_match

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
    PL/SQL Release 10.2.0.1.0 - Production
    "CORE     10.2.0.1.0     Production"
    TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
    NLSRTL Version 10.2.0.1.0 - Production
    create table category(cat_id number(20),cat_type varchar2(3000));
    create table category_match(cat_id number(20),cat_type varchar2(3000));
    Insert into category (CAT_ID,CAT_TYPE) values (12790,'AUTO CONSULTANTS');
    INSERT INTO CATEGORY (CAT_ID,CAT_TYPE) VALUES (23803,'AUTO CONSULTANT');
    Insert into category (CAT_ID,CAT_TYPE) values (23804,'CONSULTANT FOR AUTO FINANCE');
    Insert into category_match (CAT_ID,CAT_TYPE) values (12790,'AUTO CONSULTANTS');
    INSERT INTO CATEGORY_match (CAT_ID,CAT_TYPE) VALUES (23803,'AUTO CONSULTANT');
    Insert into category_match (CAT_ID,CAT_TYPE) values (23804,'CONSULTANT FOR AUTO FINANCE');
    CREATE INDEX "LOOKING4"."MYINDEX" ON "CATEGORY_MATCH"
        "CAT_TYPE"
      INDEXTYPE IS "CTXSYS"."CONTEXT" ;
    CREATE INDEX "LOOKING4"."CAT_TYPE_IDX" ON "CATEGORY"
        "CAT_TYPE"
      INDEXTYPE IS "CTXSYS"."CTXCAT" ;
    select cat_id,CAT_TYPE,UTL_MATCH.edit_distance_similarity(CAT_TYPE,'AUTO CONSULTANT') from
    select * from category where catsearch(cat_type,
    '<query>
          <textquery grammar="context">
          <progression>
          <seq>auto consultant</seq>
          <seq>?(auto) and ?(consultant)</seq>
            </progression>
            </textquery>
    </query>'
    ,NULL)>0
    )where rownum<5
    23803     AUTO CONSULTANT     100
    12790     AUTO CONSULTANTS     94
    23804     CONSULTANT FOR AUTO FINANCE     26
    update category set cat_type='CONSULTANTS AUTO' WHERE CAT_ID=12790
    select cat_id,CAT_TYPE,UTL_MATCH.edit_distance_similarity(CAT_TYPE,'AUTO CONSULTANT') from
    select * from category where catsearch(cat_type,
    '<query>
          <textquery grammar="context">
          <progression>
          <seq>auto consultant</seq>
          <seq>?(auto) and ?(consultant)</seq>
            </progression>
            </textquery>
    </query>'
    ,NULL)>0
    )where rownum<5
    23803     AUTO CONSULTANT     100
    12790     CONSULTANTS AUTO     32
    23804     CONSULTANT FOR AUTO FINANCE     26
    select score(1),cat_id,cat_type from CATEGORY_MATCH where cat_id in(
    select cat_id from category where catsearch(cat_type,
    '<query>
          <textquery grammar="context">
          <progression>
          <seq>auto consultant</seq>
          <seq>?(auto) and ?(consultant)</seq>
            </progression>
            </textquery>
    </query>'
    ,NULL)>0) AND
    contains(cat_type,'?(auto) and ?(consultant)',1)>0
    9     23803     AUTO CONSULTANT
    9     12790     AUTO CONSULTANTS
    9     23804     CONSULTANT FOR AUTO FINANCEi have been using catsearch to use progressive relaxation
    there are many "cat_types" like "cat_id" =23803,12790 ,the order of words in a sentence changes
    there are upto 10 words in each row of "cat_types" column
    among others i have referred
    Achieving functionality of many preferences using one context index
    and
    Re: Fuzzy search - more accurate score??
    there is very less possibility of repetition of words in a row
    utl match seems to work perfect only when the order of appearance of words is same
    if you can suggest a way to get a very close score for cat_id 23803 and 12790 it would be much appreciated
    thanks and regards

    select *
        FROM   (SELECT score(1),score(2),score(3),score(4),GREATEST (SCORE(1), SCORE(2) - 1, SCORE(3) - 2, SCORE(4) - 3) g_scores,
                      UTL_MATCH.EDIT_DISTANCE_SIMILARITY (CAT_TYPE,'AUTO CONSULTANT') EDS,
                      CAT_ID, CAT_TYPE
                  FROM   category_match
                  WHERE  CONTAINS (cat_type, 'solar water heater* 10 * 10', 1) > 0
                  OR     CONTAINS (cat_type, 'NEAR ((?solar, ?water ,?heater), 0, TRUE) * 10 * 10', 2) > 0
                 OR     CONTAINS (cat_type, 'NEAR ((?solar, ?water ,?heater), 0, FALSE) * 10 * 10', 3) > 0
                 or     CONTAINS (CAT_TYPE, '(?solar AND ?water AND ?heater) * 10 * 10', 4) > 0
                 order  by g_scores desc, EDS desc)
       WHERE  ROWNUM<100
    100     100     100     100     100     23     4                  SOLAR WATER HEATER-ANU
    100     100     100     100     100     22     26901          SOLAR WATER HEATER SUDARSHAN SAUR
    100     100     100     100     100     21     30                  SOLAR WATER HEATER INDUSTRIAL
    100     100     100     100     100     20     17379          SOLAR WATER HEATER DEALERS-TATA
    100     100     100     100     100     20     26906          SOLAR WATER HEATER NUETECH
    100     100     100     100     100     20     11465          SOLAR WATER HEATER DEALERS-ANU
    100     100     100     100     100     20     21                  SOLAR WATER HEATER-ZING TATA BP
    100     100     100     100     100     20     11463          SOLAR WATER HEATER MANUFACTURERS-ANU
    100     100     100     100     100     19     8                  SOLAR WATER HEATER MANUFACTURERS
    100     100     100     100     100     19     23                  SOLAR WATER HEATER EVACUATED TUBE
    100     100     100     100     100     19     49                  SOLAR WATER HEATER-HOTMAX NOVA TATA BP
    100     100     100     100     100     19     13357          SOLAR WATER HEATER INDUSTRIAL DEALERS
    100     100     100     100     100     18     16300          SOLAR WATER HEATER-TECHNOMAX
    100     100     100     100     100     18     9                  SOLAR WATER HEATER DEALERS-TATA BP
    100     100     100     100     100     18     20                  SOLAR WATER HEATER-ZING
    100     100     100     100     100     18     18                  SOLAR WATER HEATER-ORB SOLAR
    100     100     100     100     100     18     22552          SOLAR WATER HEATER-KOTAK URJA
    100     100     100     100     100     18     26908          SOLAR WATER HEATER SUPREME
    100     100     100     100     100     17     26907          SOLAR WATER HEATER TECHNOMAX"
    100     100     100     100     100     17     13322          SOLAR WATER HEATER DISTRIBUTORS
    100     100     100     100     100     17     22                  SOLAR WATER HEATER-ETC TATA BP
    100     100     100     100     100     17     48                  SOLAR WATER HEATER-VAJRA PLUS TATA BP
    100     100     100     100     100     17     27084          SOLAR WATER HEATER SALES
    100     100     100     100     100     16     16236          SOLAR WATER HEATER DEALERS-RACOLD
    100     100     100     100     100     16     15                  SOLAR WATER HEATER-NUTECH
    100     100     100     100     100     16     1                  SOLAR WATER HEATER DEALERS
    100     100     100     100     100     15     2                  SOLAR WATER HEATER DEALERS-TATA BP SOLAR
    100     100     100     100     100     15     31                  SOLAR WATER HEATER DOMESTIC
    100     100     100     100     100     15     13                  SOLAR WATER HEATER DEALERS-V GUARD
    100     100     100     100     100     14     17                  SOLAR WATER HEATER-KAMAL SOLAR
    100     100     100     100     100     13     11467          SOLAR WATER HEATER DEALERS-GILMA
    100     100     100     100     100     13     19                  SOLAR WATER HEATER-GILMA
    100     100     100     100     100     13     10                  SOLAR WATER HEATER REPAIRS & SERVICES-TATA SOLAR
    100     100     100     100     100     12     10578          SOLAR WATER HEATER
    100     100     100     100     100     11     3                  SOLAR WATER HEATER REPAIRS & SERVICES
    0      0     100     100     98     25     10120          WATER HEATER SOLAR INDUSTRIAL
    0      0     100     100     98     20     12953          WATER HEATER SOLAR-RACOLD
    0      0     100     100     98     17     10119          WATER HEATER SOLAR RESIDENCIAL
    {code}
    the query is working accurately technically
    but is there any way to get 10578 on top
    the requirement is
    ---first
    solar water heater
    solar water heater dealers
    solar water heater manufacturers
    solar water heater distributors
    solar water heater sales
    solar water heater repairs and servicing
    ---followed by
    SOLAR WATER HEATER REPAIRS & SERVICES-TATA SOLAR
    SOLAR WATER HEATER-KAMAL SOLAR
    SOLAR WATER HEATER DEALERS-TATA BP SOLAR   etc etc
    so if the end user types in "solar water" the top row would have a row from the table that has what the end user has entered followed by "dealers" or "manufacturers" or "distributors" or "sales" or "repairs and servicing"
    so if a row contains "solar water dealer" it shows up on top
    or(if "solar water dealer" is not there and "solar water manufacturers" or  "solar water distributors" etc is not present)
    a row from the table that has what the end user has entered PLUS "heater" followed by "dealers" or "manufacturers" or "distributors" or "sales" or "repairs and servicing"
    so "solar water heater dealers" shows up on top
    these words - "dealers" , "manufacturers" , "distributors" , "sales" , "repairs and servicing"  etc remain constant
    what i am using right now is
    {code}
    create or replace
    procedure HOME_OLD
    p_cat_type in varchar2,
    P_LOC IN NUMBER,
    P_MAX IN NUMBER,
    P_MIN IN NUMBER,
    P_OUT OUT SYS_REFCURSOR
    as
    VARIAB varchar2(500);
    VARIAB2 varchar2(500);
    VARIAB3 varchar2(500);
    VARIAB4 varchar2(500);
    begin
    --VARIAB2:='?'||replace(P_CAT_TYPE,' ',', ?');
    --VARIAB3:='?'||replace(P_CAT_TYPE,' ',' ?');
    --DBMS_OUTPUT.PUT_LINE(VARIAB2);
    --DBMS_OUTPUT.PUT_LINE(VARIAB3);
    SELECT stragg(cat_id) into variab
       FROM   (SELECT GREATEST (SCORE(1), SCORE(2) - 1, SCORE(3) - 2, SCORE(4) - 3) score,
                                      CAT_ID, CAT_TYPE
                  FROM   category_match
                  -- exact words in order:
                  WHERE  CONTAINS (cat_type,get_basic(P_CAT_TYPE), 1) > 0
                  -- similar words next to each other in order:
                  OR     CONTAINS (cat_type, get_near_syntax(P_CAT_TYPE), 2) > 0
                 -- similar words next to each other in any order:
                 OR     CONTAINS (cat_type, get_near_syntax_desc(P_CAT_TYPE), 3) > 0
                 -- similar words anywhere in any order:
                 OR     CONTAINS (cat_type, get_anywhere(P_CAT_TYPE), 4) > 0
                 order  by score desc)
       where  rownum < 3;
    DBMS_OUTPUT.PUT_LINE(VARIAB);
    open p_out
       FOR select * from(select rownum r,name,address1,telephone,mobile,CAT_TYP,cat_id,
    (case when  address2=p_loc and ACT_STATUS='Y'  then '1' when  address2=p_loc  then '2' when address2 in
    (select NEARBY_LOC from NEAR_BY where LOCALITY_ID=p_loc) and ACT_STATUS='Y' 
    then '3' when ADDRESS2 in (select NEARBY_LOC from NEAR_BY where LOCALITY_ID=p_loc)
    then '4' when ACT_STATUS='Y' and address2<> p_loc then '5' else '6' end) as marker
      FROM TEST_TEST
      WHERE
      CAT_ID in(select * from table(STRING_TO_TABLE_NUM(variab))) and rownum<P_MAX order by marker) where r>P_MIN;
    IF VARIAB IS NULL THEN
    OPEN P_OUT
       FOR SELECT * FROM(SELECT rownum r,name,address1,telephone,mobile,CATS
       FROM   (SELECT GREATEST (SCORE(1), SCORE(2) - 1, SCORE(3) - 2, SCORE(4) - 3) score,
                                      NAME,ADDRESS1,TELEPHONE,MOBILE,CATS
                  FROM   TEST_TEST2
                  -- exact words in order:
                  WHERE  CONTAINS (NAME,get_basic(P_CAT_TYPE), 1) > 0
                  -- similar words next to each other in order:
                  OR     CONTAINS (NAME, get_near_syntax(P_CAT_TYPE), 2) > 0
                 -- similar words next to each other in any order:
                 OR     CONTAINS (NAME, get_near_syntax_desc(P_CAT_TYPE), 3) > 0
                 -- similar words anywhere in any order:
                 OR     CONTAINS (NAME, get_anywhere(P_CAT_TYPE), 4) > 0
                 ORDER  BY SCORE DESC)
       WHERE  ROWNUM < P_MAX)where r>P_MIN;
    END IF;
    end home_old;
    {code}
    the flow is to find what the end user has entered in category table ,if a match exists,find all reg_ids from test_test materialized view that have selected the matched cat_id..
    the test_test materialized view lists each company cat_id-selected-by-that-company number of times 
    if no match is found in category table what the end user has entered could be a company so  a search in name column of test_test2 materialized view..
    this materialized view has one entry for each  company
    {code}
    create or replace
    FUNCTION GET_BASIC(P_CAT_TYPE VARCHAR2)
        RETURN VARCHAR2
      is
      VARIAB2 VARCHAR2(3000);
          begin
    VARIAB2:='{'||P_CAT_TYPE||'}*10*10'; 
    return(VARIAB2);
    END;
    create or replace
    FUNCTION GET_NEAR_SYNTAX(P_CAT_TYPE VARCHAR2)
        RETURN VARCHAR2
      is
      VARIAB2 VARCHAR2(3000);
          begin
    VARIAB2:='NEAR((?{'||replace(P_CAT_TYPE,' ','}, ?{')||'}),10,TRUE)*10*10'; 
    return(VARIAB2);
    END;
    create or replace
    FUNCTION GET_NEAR_SYNTAX_DESC(P_CAT_TYPE VARCHAR2)
        RETURN VARCHAR2
      is
      VARIAB2 VARCHAR2(3000);
          begin
    VARIAB2:='NEAR((?{'||replace(P_CAT_TYPE,' ','}, ?{')||'}),10,FALSE)*10*10'; 
    return(VARIAB2);
    END;
    {code}
    can anything be done to ameliorate this whole flow
    can anything be done to eliminate the near_by and act_status and locality checking in ordering by "marker" clause
    below is the materialized view creation ddl
    SELECT IN_V.REG_ID,
        IN_V.NAME,
        IN_V.TELEPHONE,
        IN_V.MOBILE,
        IN_V.ADDRESS1,
        IN_V.ADDRESS2,
        IN_V.ACT_STATUS,
        resec.cat_id,
        UPPER(STRAGG(IN_V.CAT_TYPE)) AS cat_typ
      FROM
        (SELECT RSC.REG_ID,
          R.NAME,
          RSC.CAT_ID,
          C.CAT_TYPE,
          R.ADDRESS1,
          R.ADDRESS2,
          R.ACT_STATUS,
          R.TELEPHONE,
          R.MOBILE,
          ROW_NUMBER() OVER (PARTITION BY RSC.REG_ID ORDER BY rsc.reg_id) AS TT
        FROM REG_SEG_CAT RSC,
          category C,
          REGISTRATION R
        WHERE C.CAT_ID=RSC.CAT_ID
        AND R.REG_ID  =RSC.REG_ID
        ) IN_V,
        REG_SEG_CAT RESEC
      WHERE in_v.reg_id=resec.reg_id
      AND IN_V.TT      <6
      GROUP BY IN_V.REG_ID,
        IN_V.NAME,
        IN_V.TELEPHONE,
        IN_V.MOBILE,
        IN_V.ADDRESS2,
        IN_V.ACT_STATUS,
        IN_V.ADDRESS1,
        resec.cat_id;
      and sql>desc test_test
    REG_ID
    NAME
    TELEPHONE
    MOBILE
    ADDRESS1
    ADDRESS2
    ACT_STATUS
    CAT_ID
    CAT_TYP
    please let me know if you need more info
    Edited by: 946207 on Apr 19, 2013 6:22 PM                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Why does URLStream complete event get dispatched when the file is not finished loading?

    I'm writing an AIR kiosk app that every night connects to a WordPress server, gets a JSON file with paths to all the content, and then downloads that content and saves it to the kiosk hard drive. 
    There's several hundred files (jpg, png, f4v, xml) and most of them download/save with no problems.  However, there are two f4v files that never get downloaded completely.  The complete event does get dispatched, but if I compare the bytesTotal (from the progress event) vs bytesAvailable (from the complete event) they don't match up; bytesTotal is larger.  The bytesTotal (from the progress event) matches the bytes on the server. 
    The bytesLoaded in the progress event never increases to the point that it matches the bytesTotal so I can't rely on the progress event either.  This seems to happen on the same two videos every time. The videos are not very large, one is 13MB and the other is 46MB.  I have larger videos that download without any problems.  
    [edit] After rebooting the compter, the two videos that were failing now download correctly, and now it's a 300kb png file that is not downloading completely.  I'm only getting 312889 of 314349 bytes.
    If I paste the url into Firefox it downloads correctly, so it appears to be a problem with Flash/AIR.
    [edit] I just wrote a quick C# app to download the file and it works as expected, so it's definitely a problem with Flash/AIR. 
    Here's the code I'm using:
    package  {
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.ProgressEvent;
        import flash.net.URLRequest;
        import flash.net.URLStream;
        [SWF(backgroundColor="#000000", frameRate="24", width="640", height="480")]
        public class Test extends Sprite {
            private var fileSize:Number;
            private var stream : URLStream;
            private var url:String = "http://192.168.150.219/wordpress2/wp-content/uploads/2012/12/John-Butler-clip1.f4v";
            public function Test() {
                if (stage)
                    init();
                else
                    this.addEventListener(Event.ADDED_TO_STAGE, init);
            private function init(e:Event=null):void {
                this.removeEventListener(Event.ADDED_TO_STAGE, init);
                stream = new URLStream();
                stream.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
                stream.addEventListener(Event.COMPLETE, onLoadComplete);
                stream.load(new URLRequest(url));
            private function onLoadProgress(event:ProgressEvent):void {
                fileSize = event.bytesTotal;
                var percent:Number = event.bytesLoaded / event.bytesTotal * 100;
                trace(percent + "%");
            private function onLoadComplete(event:Event):void {
                trace("loaded", stream.bytesAvailable, "of", fileSize);
                // outputs "loaded 13182905 of 13184365"
                // so why is it "complete" when it isn't finished downloading?

    Thanks for your quick reply !
    I am relatively new to programming so please bear with me on this as I still haven't managed to grasp some of those things that "make perfect sense". If I am setting mouseEnabled to false doesn't that mean that the object no longer gets MouseEvents ?
    If I have understood you correctly then once the mouseEnabled is set to false the btn object is removed from the objects recognizable by the mouse - hence dispatching a mouseout event (and I am guessing here) from the mouse?
    I still don't get it though, if the listeners are set to the object and the object is no longer accessible to the mouse why is the event still being dispatched ?
    I get it that the making of the object unavailable to the mouse causes the "removing" (deactivating) of the object from under the mouse,
      step 1. deactivate object, and  step 2. (as a result of step 1) register the removal of the object.
    but why is the mouse still listening after step 1?
    Even if the action is that of "out" (as in the object is no longer under the mouse) it still is an action isn't it ? so haven't we turned off the listening for actions ?
    I promise I am not trying to drive you crazy here, this is just one of those things that I really want to get to the root of !
    Thanks,

  • Cannot install HP Photosmart Solution Center for C410a All-In-One

    Computer: Dell Inspiron 15R
    O/S: Windows 8.1, 64-bit
    Printer: HP Photosmart Premium  Fax e-All-in-One Printer C410a
    This computer had a version of the HP Solution Center successfully installed in the past, but we started having problems with the computer to the point where we lost all the Microsoft Office suite.  After repairing/reinstalling that, I repaired all the other Programs in the Control Panel Unstall page.  However, I decided to uninstall all HP software using the Control Panel Unstall Program.  I rebooted the computer and attempted to reinstall the HP Solution Center by downloading the latest software from the HP website.  The software will not reinstall.
    When the installer screen appears, it has 3 buttons: Install, Readme, Exit.
    When I hit "Install", a popup window indicates "The system cannot find the file specified."
    So, I cancel out of it and hit "Readme".  A different popup window appears indicates:
    Windows cannot find
    'C\Users\Karen\AppData\Local\Temp\7zS3838\setup\Readme\autorun.infla...\Readme.hml'
    Make sure you typed the name correctly, and then try again.
    I hit "Exit" and the installation window closes.
    The "\Readme\autorun.infla...\Readme.hml" message bothered me so I looked into the 7zS3838 directory.  There I found the Autorun setup information file.  Under the "[LaunchPad.Main.Btn2]" section is a line:
    TargetPath=.\setup\Readme\%lang%\Readme.html.  It seems to me the "%lang%" parameter is messed up somehow being set to some version of "autorun.infla".  If "%lang%" is corupted, it seems likely that other parameters are corrupted as well indicated by the error message produced when hitting "Install".
    I have tried running the Unstall_L4.bat.  It seems to fail on a particular section, but then presses on to completion.
    I have run a Disc Cleanup and rebooted the computer several time as well as tried this installation several times but to no avail.
    I have tried installing using the PS_AIO_07_C410_140_408.exe software and it produces the same results as the Solution Center.
    I even tried the original installation disc, but, when the installation screen appeared, there were no "Install" nor "Readme" buttons (only and "Exit" button).
    I have looked at the log files for the Solution Center installation.  It produced 12 log files: HPSLPSVC0000 - HPSLPSVC0010 and HPPIWLog.  None of the HPSLPSVC log files show any errors.  But, the HPPIWLog does.  I'll post the as much log as I can at the end of this post.  However, 2 failures stand out.
    The first is:
    ( 3-21-2014 22:38:38:347 ):MsiEnumRelatedProducts Failed with Upgrade code : {CC6EF10F-6CFE-4660-85B4-4CED9EEC7B5B}
    The second is:
    ( 3-21-2014 22:55:30:96 ):Error.!!Device's TYPE is NOT SUPPORTED
    Well, other that the 2 errors from the log file, please let me know if you have any ideas on how the "%lang%" parameter could have been corrupted.  I'm willing to dig into the registry if I have to.
    Thanks in advance!
    Ted
    Here's the HPPIWLog:
    ( 3-21-2014 22:34:17:665 ):-------------- APPLICATION STARTUP --------------------
    ( 3-21-2014 22:34:17:665 ):Version :3.1.0.19
    ( 3-21-2014 22:34:17:665 )perating System : (64 Bit)
    ( 3-21-2014 22:34:17:665 ):-------------------------------------------------------
    ( 3-21-2014 22:34:18:134 )howing Invitation Screen..
    ( 3-21-2014 22:34:18:134 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:34:18:134 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:34:18:134 )et Aboutbox string..
    ( 3-21-2014 22:34:18:196 ):Window is set as foreground
    ( 3-21-2014 22:34:18:196 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:34:22:306 )howing Preparing Dialog..
    ( 3-21-2014 22:34:22:306 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:34:22:306 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:34:22:306 )et Aboutbox string..
    ( 3-21-2014 22:34:22:306 ):Window is set as foreground
    ( 3-21-2014 22:34:22:306 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:34:22:697 ):Inside CSparkBusinessLogic:repareSoftwareAvailabilityMatrix
    ( 3-21-2014 22:34:22:697 ):Inside CNetworkEnum Constructor
    ( 3-21-2014 22:34:22:697 ):Call CoCreateInstance
    ( 3-21-2014 22:36:22:818 ):call ReregisterSLPService
    ( 3-21-2014 22:36:23:5 )evice Manager Enumeration - USB and Network devices
    ( 3-21-2014 22:36:23:21 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:36:23:21 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:36:23:21 )et Aboutbox string..
    ( 3-21-2014 22:36:23:36 ):Window is set as foreground
    ( 3-21-2014 22:36:23:36 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:36:33:538 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:36:33:538 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:36:33:538 )et Aboutbox string..
    ( 3-21-2014 22:36:33:538 ):Window is set as foreground
    ( 3-21-2014 22:36:33:538 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:36:34:70 ):Thread Started..
    ( 3-21-2014 22:36:34:70 ):Enumerating Modelnumber of USB Devices.
    ( 3-21-2014 22:36:34:85 )LP Enumeartion.
    ( 3-21-2014 22:36:34:85 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:36:34:85 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:36:34:85 )et Aboutbox string..
    ( 3-21-2014 22:36:34:85 ):Window is set as foreground
    ( 3-21-2014 22:36:34:101 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:38:34:206 ):WMI Enumeartion.
    ( 3-21-2014 22:38:35:472 )evice Manager Enumeration - Karnak enumeration
    ( 3-21-2014 22:38:35:472 ):Get Modelnumber of Network Karnak Device..
    ( 3-21-2014 22:38:36:831 ):Inside IsKarnakDevice Method
    ( 3-21-2014 22:38:36:831 )evice : HP Photosmart Prem C410 series
    ModelNumber : CQ521A
    ( 3-21-2014 22:38:36:831 ):Webserer Request URL : http://h20614.www2.hp.com/ediags/solutions/software?client=PIW&FriendlyName=HP Photosmart Prem C410 series&OS=Windows NT 6.2
    ( 3-21-2014 22:38:38:347 ):Inside CheckForSoftware Method..
    ( 3-21-2014 22:38:38:347 ):MsiEnumRelatedProducts Failed with Upgrade code : {CC6EF10F-6CFE-4660-85B4-4CED9EEC7B5B}
    ( 3-21-2014 22:38:38:347 ):Inside CNetworkEnum Constructor
    ( 3-21-2014 22:38:38:347 ):Call CoCreateInstance
    ( 3-21-2014 22:40:38:425 ):call ReregisterSLPService
    ( 3-21-2014 22:40:38:487 ):Network Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:40:38:487 ):ModelNumber : CQ521A
    ( 3-21-2014 22:40:38:487 ):Requet Send to Terminate Thread .!!
    ( 3-21-2014 22:40:38:487 ):Thread Terminated.!!
    ( 3-21-2014 22:40:38:487 ):Returns from CSparkBusinessLogic:repareSoftwareAvailabilityMatrix
    ( 3-21-2014 22:40:38:487 ):Number of Devices Enumerated : 0
    ( 3-21-2014 22:40:38:487 ):No devices Connected/Installed
    ( 3-21-2014 22:40:38:487 ):Current Screen Id : 3
    ( 3-21-2014 22:40:38:503 )howing USB Connection Dialog..
    ( 3-21-2014 22:40:38:503 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:40:38:503 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:40:38:503 )et Aboutbox string..
    ( 3-21-2014 22:40:38:519 ):Window is set as foreground
    ( 3-21-2014 22:40:38:519 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:40:38:519 ):Inside CUsbConnectionDlg : OnInitDialog()
    ( 3-21-2014 22:40:38:519 ):Returns from CUsbConnectionDlg : OnInitDialog()
    ( 3-21-2014 22:40:53:544 ):currentScreenId = ScreenIdNetworkDeviceSelect (2P)
    ( 3-21-2014 22:40:53:544 )howing Network Device Dialog..
    ( 3-21-2014 22:40:53:560 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:40:53:576 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:40:53:576 )et Aboutbox string..
    ( 3-21-2014 22:40:53:576 ):Window is set as foreground
    ( 3-21-2014 22:40:53:576 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:40:53:591 ):Inside NetWorkDialog : OnInitDialog()
    ( 3-21-2014 22:40:53:591 ):Calling NetWorkDialog : EnumerateNetworkDevices()
    ( 3-21-2014 22:40:53:591 ):Inside CNetworkEnum Constructor
    ( 3-21-2014 22:40:53:591 ):Call CoCreateInstance
    ( 3-21-2014 22:42:53:653 ):call ReregisterSLPService
    ( 3-21-2014 22:44:53:823 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:44:53:823 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:44:53:823 )et Aboutbox string..
    ( 3-21-2014 22:44:53:823 ):Window is set as foreground
    ( 3-21-2014 22:44:53:839 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:45:3:872 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:45:3:872 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:45:3:872 )et Aboutbox string..
    ( 3-21-2014 22:45:3:888 ):Window is set as foreground
    ( 3-21-2014 22:45:3:888 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:45:4:232 ):Calling sparkBL.GetLatestSoftwareAvailabilityMatrix From Network dialog
    ( 3-21-2014 22:45:4:232 ):Inside GetLatestSoftwareAvailabilityMatrix Method
    ( 3-21-2014 22:45:4:232 ):Inside CSparkBusinessLogic:repareSoftwareAvailabilityMatrix
    ( 3-21-2014 22:45:4:232 ):Inside CNetworkEnum Constructor
    ( 3-21-2014 22:45:4:232 ):Call CoCreateInstance
    ( 3-21-2014 22:47:4:304 ):call ReregisterSLPService
    ( 3-21-2014 22:47:4:350 )LP Enumeartion.
    ( 3-21-2014 22:49:4:457 ):WMI Enumeartion.
    ( 3-21-2014 22:49:4:723 )evice Manager Enumeration - Karnak enumeration
    ( 3-21-2014 22:49:4:723 ):Returns from CSparkBusinessLogic:repareSoftwareAvailabilityMatrix
    ( 3-21-2014 22:49:4:723 )et LatestSoftwareAvailabilityMatrix as devMap = m_DeviceSoftwareAvailabilityMatrix
    ( 3-21-2014 22:49:4:723 ):Returns from sparkBL.GetLatestSoftwareAvailabilityMatrix
    ( 3-21-2014 22:49:4:738 ):Returns from NetWorkDialog : EnumerateNetworkDevices()
    ( 3-21-2014 22:49:18:6 ):currentScreenId = ScreenIdNetworkDeviceSelect
    ( 3-21-2014 22:49:18:6 )et Re-enumeration Flag : True.
    call GetDeviceSelectionScreenId
    ( 3-21-2014 22:49:18:6 ):Inside CSparkBusinessLogic:repareSoftwareAvailabilityMatrix
    ( 3-21-2014 22:49:18:6 ):Inside CNetworkEnum Constructor
    ( 3-21-2014 22:49:18:6 ):Call CoCreateInstance
    ( 3-21-2014 22:51:18:57 ):call ReregisterSLPService
    ( 3-21-2014 22:51:18:167 )evice Manager Enumeration - USB and Network devices
    ( 3-21-2014 22:51:18:182 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:51:18:182 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:51:18:182 )et Aboutbox string..
    ( 3-21-2014 22:51:18:198 ):Window is set as foreground
    ( 3-21-2014 22:51:18:198 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:51:28:247 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:51:28:262 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:51:28:262 )et Aboutbox string..
    ( 3-21-2014 22:51:28:278 ):Window is set as foreground
    ( 3-21-2014 22:51:28:278 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:51:28:590 ):Thread Started..
    ( 3-21-2014 22:51:28:590 ):Enumerating Modelnumber of USB Devices.
    ( 3-21-2014 22:51:28:590 )LP Enumeartion.
    ( 3-21-2014 22:51:28:606 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:51:28:606 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:51:28:606 )et Aboutbox string..
    ( 3-21-2014 22:51:28:622 ):Window is set as foreground
    ( 3-21-2014 22:51:28:622 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:53:28:710 ):WMI Enumeartion.
    ( 3-21-2014 22:53:28:961 )evice Manager Enumeration - Karnak enumeration
    ( 3-21-2014 22:53:28:976 ):Get Modelnumber of Network Karnak Device..
    ( 3-21-2014 22:53:29:148 ):Inside CNetworkEnum Constructor
    ( 3-21-2014 22:53:29:148 ):Call CoCreateInstance
    ( 3-21-2014 22:55:29:206 ):call ReregisterSLPService
    ( 3-21-2014 22:55:29:252 ):Network Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:55:29:252 ):ModelNumber : CQ521A
    ( 3-21-2014 22:55:29:252 ):Get Modelnumber of Network SLP Device..
    ( 3-21-2014 22:55:29:424 ):Network Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:55:29:424 ):ModelNumber : CQ521A
    ( 3-21-2014 22:55:29:424 )evice Details..
    Name : HP Photosmart Prem C410 series
    PID : 0000
    ModelNumber : CQ521A
    ( 3-21-2014 22:55:29:424 ):Request send by PID
    ( 3-21-2014 22:55:29:440 ):Webserer Request URL : http://h20614.www2.hp.com/ediags/solutions/software?client=PIW&Pid=0x0000&OS=Windows NT 6.2
    ( 3-21-2014 22:55:30:96 ):Error.!!Device's TYPE is NOT SUPPORTED
    ( 3-21-2014 22:55:30:96 ):Failed to Parse Json Object.
    ( 3-21-2014 22:55:30:96 ):Failed to read webserver data using PID
    ( 3-21-2014 22:55:30:96 ):Request send by Friendlyname
    ( 3-21-2014 22:55:30:96 ):Webserer Request URL : http://h20614.www2.hp.com/ediags/solutions/software?client=PIW&FriendlyName=HP Photosmart Prem C410 series&OS=Windows NT 6.2
    ( 3-21-2014 22:55:31:362 ):Inside CheckForSoftware Method..
    ( 3-21-2014 22:55:31:362 ):MsiEnumRelatedProducts Failed with Upgrade code : {CC6EF10F-6CFE-4660-85B4-4CED9EEC7B5B}
    ( 3-21-2014 22:55:31:362 ):Insert device details to Matrix
    ( 3-21-2014 22:55:31:362 ):Requet Send to Terminate Thread .!!
    ( 3-21-2014 22:55:31:362 ):Thread Terminated.!!
    ( 3-21-2014 22:55:31:362 ):Returns from CSparkBusinessLogic:repareSoftwareAvailabilityMatrix
    ( 3-21-2014 22:55:31:362 ):Number of Devices Enumerated : 1
    ( 3-21-2014 22:55:31:362 )evices Connected/Installed
    ( 3-21-2014 22:55:31:362 )howing Device Dialog..
    ( 3-21-2014 22:55:31:425 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:55:31:440 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:55:31:440 )et Aboutbox string..
    ( 3-21-2014 22:55:31:456 ):Window is set as foreground
    ( 3-21-2014 22:55:31:456 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:55:31:456 )evice Dialog :: OnInitiDialog()
    ( 3-21-2014 22:55:31:471 ):Calling EnumerateDevices(false)
    ( 3-21-2014 22:55:31:471 ):Returns from sparkBL-> GetSoftwareAvailabilityMatrix/ GetLatestSoftwareAvailabilityMatrix
    ( 3-21-2014 22:55:31:471 ):m_listPrinters.DeleteAllItems()
    ( 3-21-2014 22:55:31:471 ):Number of Devices added to List : 1
    ( 3-21-2014 22:55:31:471 )evices added to List
    ( 3-21-2014 22:55:31:471 ):Returns from EnumerateDevices..
    ( 3-21-2014 22:55:31:471 )etReEnumerationFlag : True
    ( 3-21-2014 22:55:31:487 )evices Listed..
    ( 3-21-2014 22:55:31:487 ):m_listPrinters.SetSelectionMark(0).
    ( 3-21-2014 22:55:31:487 )et iDevNdx = m_listPrinters.GetSelectionMark().
    ( 3-21-2014 22:55:31:487 )elected device index, iDevNdx = 0
    ( 3-21-2014 22:55:31:487 )elected device index changed, Now iDevNdx = 0
    ( 3-21-2014 22:55:31:487 ):calling sparkBL.SetDeviceMatrix(m_DeviceSoftwareAvailabilityMap[iDevNdx])
    ( 3-21-2014 22:55:31:487 ):Returns from sparkBL.SetDeviceMatrix()
    ( 3-21-2014 22:55:31:487 ):Calling Updatestatus
    ( 3-21-2014 22:55:31:487 ):Extra checking added for Bad devnode
    ( 3-21-2014 22:55:31:487 ):Call CPrinterEnumerator::EnumerateUSBPrinters Method
    ( 3-21-2014 22:55:31:487 ):Return from CPrinterEnumerator::EnumerateUSBPrinters
    ( 3-21-2014 22:55:31:487 ):Exitting CheckBadDevnode Method
    ( 3-21-2014 22:55:31:487 )electd Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:55:31:487 )evice Not Installed.!!
    ( 3-21-2014 22:55:31:487 ):No Bad devnode
    ( 3-21-2014 22:55:31:487 ):No Driver Issue
    ( 3-21-2014 22:55:31:503 )ort Issue Found.!!
    ( 3-21-2014 22:55:31:503 ):Missing Driver Issue.!!
    ( 3-21-2014 22:55:31:503 )rint Not Installed.!!!
    ( 3-21-2014 22:55:31:503 )can Not Installed.!!!
    ( 3-21-2014 22:55:31:503 )evice has FULL Solution
    ( 3-21-2014 22:55:31:503 ):Calling UpdateVidPid
    ( 3-21-2014 22:55:31:503 ):calling sparkBL.GetDeviceMatrix() from UpdateVidPid.
    ( 3-21-2014 22:55:31:503 )elected Device's PID : 0
    ( 3-21-2014 22:55:31:503 ):Calling UpdateModelNumber
    ( 3-21-2014 22:55:31:503 ):calling sparkBL.GetDeviceMatrix() from UpdateModelNumber.
    ( 3-21-2014 22:55:31:503 ):Modelnumber : CQ521A
    ( 3-21-2014 22:55:31:518 )isable the sorting of devices in ListCrtl
    ( 3-21-2014 22:55:31:518 ):Returns from Device Dialog :: OnInitiDialog()
    ( 3-21-2014 22:55:38:285 ):Extra checking added for Bad devnode
    ( 3-21-2014 22:55:38:285 ):Call CPrinterEnumerator::EnumerateUSBPrinters Method
    ( 3-21-2014 22:55:38:285 ):Return from CPrinterEnumerator::EnumerateUSBPrinters
    ( 3-21-2014 22:55:38:285 ):Exitting CheckBadDevnode Method
    ( 3-21-2014 22:55:38:285 )electd Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:55:38:285 )evice Not Installed.!!
    ( 3-21-2014 22:55:38:285 ):No Bad devnode
    ( 3-21-2014 22:55:38:285 ):No Driver Issue
    ( 3-21-2014 22:55:38:285 )ort Issue Found.!!
    ( 3-21-2014 22:55:38:285 ):Missing Driver Issue.!!
    ( 3-21-2014 22:55:38:285 )rint Not Installed.!!!
    ( 3-21-2014 22:55:38:285 )can Not Installed.!!!
    ( 3-21-2014 22:55:38:285 )evice has FULL Solution
    ( 3-21-2014 22:55:38:301 ):calling sparkBL.GetDeviceMatrix() from UpdateVidPid.
    ( 3-21-2014 22:55:38:301 )elected Device's PID : 0
    ( 3-21-2014 22:55:38:301 ):calling sparkBL.GetDeviceMatrix() from UpdateModelNumber.
    ( 3-21-2014 22:55:38:301 ):Modelnumber : CQ521A
    ( 3-21-2014 22:55:38:426 ):Extra checking added for Bad devnode
    ( 3-21-2014 22:55:38:426 ):Call CPrinterEnumerator::EnumerateUSBPrinters Method
    ( 3-21-2014 22:55:38:426 ):Return from CPrinterEnumerator::EnumerateUSBPrinters
    ( 3-21-2014 22:55:38:426 ):Exitting CheckBadDevnode Method
    ( 3-21-2014 22:55:38:426 )electd Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:55:38:426 )evice Not Installed.!!
    ( 3-21-2014 22:55:38:426 ):No Bad devnode
    ( 3-21-2014 22:55:38:426 ):No Driver Issue
    ( 3-21-2014 22:55:38:426 )ort Issue Found.!!
    ( 3-21-2014 22:55:38:426 ):Missing Driver Issue.!!
    ( 3-21-2014 22:55:38:426 )rint Not Installed.!!!
    ( 3-21-2014 22:55:38:426 )can Not Installed.!!!
    ( 3-21-2014 22:55:38:426 )evice has FULL Solution
    ( 3-21-2014 22:55:38:426 ):calling sparkBL.GetDeviceMatrix() from UpdateVidPid.
    ( 3-21-2014 22:55:38:426 )elected Device's PID : 0
    ( 3-21-2014 22:55:38:442 ):calling sparkBL.GetDeviceMatrix() from UpdateModelNumber.
    ( 3-21-2014 22:55:38:442 ):Modelnumber : CQ521A
    ( 3-21-2014 22:55:47:115 ):Extra checking added for Bad devnode
    ( 3-21-2014 22:55:47:115 ):Call CPrinterEnumerator::EnumerateUSBPrinters Method
    ( 3-21-2014 22:55:47:115 ):Return from CPrinterEnumerator::EnumerateUSBPrinters
    ( 3-21-2014 22:55:47:115 ):Exitting CheckBadDevnode Method
    ( 3-21-2014 22:55:47:115 )electd Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:55:47:115 )evice Not Installed.!!
    ( 3-21-2014 22:55:47:115 ):No Bad devnode
    ( 3-21-2014 22:55:47:115 ):No Driver Issue
    ( 3-21-2014 22:55:47:115 )ort Issue Found.!!
    ( 3-21-2014 22:55:47:115 ):Missing Driver Issue.!!
    ( 3-21-2014 22:55:47:115 )rint Not Installed.!!!
    ( 3-21-2014 22:55:47:115 )can Not Installed.!!!
    ( 3-21-2014 22:55:47:115 )evice has FULL Solution
    ( 3-21-2014 22:55:47:115 ):calling sparkBL.GetDeviceMatrix() from UpdateVidPid.
    ( 3-21-2014 22:55:47:115 )elected Device's PID : 0
    ( 3-21-2014 22:55:47:130 ):calling sparkBL.GetDeviceMatrix() from UpdateModelNumber.
    ( 3-21-2014 22:55:47:130 ):Modelnumber : CQ521A
    ( 3-21-2014 22:55:47:146 )electd Device : HP Photosmart Prem C410 series
    ( 3-21-2014 22:55:47:146 ):FTP URL : ftp://ftp.hp.com/pub/softlib/software12/COL34152/mp-109793-1/PS_AIO_07_C410_140_408.exe
    ( 3-21-2014 22:55:47:146 )howing Downloading Dialog..
    ( 3-21-2014 22:55:47:162 ):Inside CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:55:47:162 ):called Spark::g_pMediator->RegisterNotification(m_hWnd)..
    ( 3-21-2014 22:55:47:162 )et Aboutbox string..
    ( 3-21-2014 22:55:47:193 ):Window is set as foreground
    ( 3-21-2014 22:55:47:193 ):Returns from CSparkDialog:nInitDialog()..
    ( 3-21-2014 22:55:47:209 ):-------HPPIW SOLUTION DOWNLOAD INFO------
    ( 3-21-2014 22:55:47:209 )olution Download Link :ftp://ftp.hp.com/pub/softlib/software12/COL34152/mp-109793-1/PS_AIO_07_C410_140_408.exe
    ( 3-21-2014 23:0:16:422 ):Running Processes :
    ( 3-21-2014 23:0:16:422 ):[System Process]
    ( 3-21-2014 23:0:16:422 )ystem
    ( 3-21-2014 23:0:16:422 ):smss.exe
    ( 3-21-2014 23:0:16:422 ):csrss.exe
    ( 3-21-2014 23:0:16:422 ):wininit.exe
    ( 3-21-2014 23:0:16:422 ):csrss.exe
    ( 3-21-2014 23:0:16:422 ):winlogon.exe
    ( 3-21-2014 23:0:16:422 ):services.exe
    ( 3-21-2014 23:0:16:422 ):lsass.exe
    ( 3-21-2014 23:0:16:422 ):svchost.exe
    ( 3-21-2014 23:0:16:422 ):svchost.exe
    ( 3-21-2014 23:0:16:422 ):dwm.exe
    ( 3-21-2014 23:0:16:422 ):svchost.exe
    ( 3-21-2014 23:0:16:422 ):svchost.exe
    ( 3-21-2014 23:0:16:422 ):svchost.exe
    ( 3-21-2014 23:0:16:422 ):svchost.exe
    ( 3-21-2014 23:0:16:422 ):RtkAudioService64.exe
    ( 3-21-2014 23:0:16:437 ):RAVBg64.exe
    ( 3-21-2014 23:0:16:437 ):RAVBg64.exe
    ( 3-21-2014 23:0:16:437 ):svchost.exe
    ( 3-21-2014 23:0:16:437 ):spoolsv.exe
    ( 3-21-2014 23:0:16:437 ):svchost.exe
    ( 3-21-2014 23:0:16:437 ):armsvc.exe
    ( 3-21-2014 23:0:16:437 ):AERTSr64.exe
    ( 3-21-2014 23:0:16:437 ):AppleMobileDeviceService.exe
    ( 3-21-2014 23:0:16:437 ):AdminService.exe
    ( 3-21-2014 23:0:16:437 ):mDNSResponder.exe
    ( 3-21-2014 23:0:16:437 )fficeclicktorun.exe
    ( 3-21-2014 23:0:16:437 ):dasHost.exe
    ( 3-21-2014 23:0:16:437 ):HeciServer.exe
    ( 3-21-2014 23:0:16:437 ):McSvHost.exe
    ( 3-21-2014 23:0:16:437 ):mfevtps.exe
    ( 3-21-2014 23:0:16:437 ):svchost.exe
    ( 3-21-2014 23:0:16:437 ):svchost.exe
    ( 3-21-2014 23:0:16:437 ):RichVideo.exe
    ( 3-21-2014 23:0:16:437 ):svchost.exe
    ( 3-21-2014 23:0:16:437 )ocketCloudService.exe
    ( 3-21-2014 23:0:16:437 ):WyseRemoteAccess.exe
    ( 3-21-2014 23:0:16:453 ):McAPExe.exe
    ( 3-21-2014 23:0:16:453 ):mcshield.exe
    ( 3-21-2014 23:0:16:453 ):mfefire.exe
    ( 3-21-2014 23:0:16:453 ):svchost.exe
    ( 3-21-2014 23:0:16:453 ):svchost.exe
    ( 3-21-2014 23:0:16:453 ):svchost.exe
    ( 3-21-2014 23:0:16:453 ):taskhostex.exe
    ( 3-21-2014 23:0:16:453 )ynTPEnh.exe
    ( 3-21-2014 23:0:16:453 ):explorer.exe
    ( 3-21-2014 23:0:16:453 ):GoogleCrashHandler.exe
    ( 3-21-2014 23:0:16:453 ):TabTip.exe
    ( 3-21-2014 23:0:16:453 ):TabTip32.exe
    ( 3-21-2014 23:0:16:453 ):GoogleCrashHandler64.exe
    ( 3-21-2014 23:0:16:453 )earchIndexer.exe
    ( 3-21-2014 23:0:16:453 )kyDrive.exe
    ( 3-21-2014 23:0:16:453 ):WmiPrvSE.exe
    ( 3-21-2014 23:0:16:453 ):dllhost.exe
    ( 3-21-2014 23:0:16:453 )ettingSyncHost.exe
    ( 3-21-2014 23:0:16:468 ):BtvStack.exe
    ( 3-21-2014 23:0:16:468 ):ActivateDesktop.exe
    ( 3-21-2014 23:0:16:468 ):RtkNGUI64.exe
    ( 3-21-2014 23:0:16:468 ):RAVBg64.exe
    ( 3-21-2014 23:0:16:468 ):RAVBg64.exe
    ( 3-21-2014 23:0:16:468 )ynTPHelper.exe
    ( 3-21-2014 23:0:16:468 ):igfxtray.exe
    ( 3-21-2014 23:0:16:468 ):igfxsrvc.exe
    ( 3-21-2014 23:0:16:468 ):hkcmd.exe
    ( 3-21-2014 23:0:16:468 ):igfxpers.exe
    ( 3-21-2014 23:0:16:468 ):quickset.exe
    ( 3-21-2014 23:0:16:468 )ellSystemDetect.exe
    ( 3-21-2014 23:0:16:468 )DVD10Serv.exe
    ( 3-21-2014 23:0:16:468 ):McUICnt.exe
    ( 3-21-2014 23:0:16:468 ):hppiw (9).exe
    ( 3-21-2014 23:0:16:468 ):hppiw.exe
    ( 3-21-2014 23:0:16:468 ):AbsoluteReminder.exe
    ( 3-21-2014 23:0:16:468 ):CLMLSvc_P2G8.exe
    ( 3-21-2014 23:0:16:468 ):IAStorIcon.exe
    ( 3-21-2014 23:0:16:468 ):IAStorDataMgrSvc.exe
    ( 3-21-2014 23:0:16:468 ):Jhi_service.exe
    ( 3-21-2014 23:0:16:484 ):WmiPrvSE.exe
    (FYI - Could not post whole log due to the 50,000 character limit.  No errors reported after this point)

    Firstly, thanks for your suggestion.  I appreciate it.
    Secondly, sorry it took so long to get back to you.  The computer is my wife's and she been quite busy with it so I haven't had the chance to test out your suggestion.
    Unfortunately, your suggestion didn't work.  I tried it multiple times with no luck.
    Here's some additional data.
    (1) As for the "ReadMe" issue (mentioned in the initial message), the "autorun.infla..." issue looks like the first "%" in the "%lang%" string is in fact the name of the file "autorun.inf".  So when "%lang%" is being printed, "autorun.inf" is being substituted for the first "%", hence "autorun.infla...".
    Not sure if that helps.
    (2) I tried running HP Print and Scan Doctor and I saw something unusual.  The initial page shows the following:
    Product                                       Connect                                  Software Status
    Prem C410,192.168.1.7      Network(192.168.1.5)     Installed 
    Prem C410,192.168.1.7      Network(192.168.1.7)     Installed 
    There is ony 1 printer hooked to the network.  I searched through the registry and I did find instances of "192.168.1.5" and "192.168.1.7".
    (3) I also tried using the various uninstallers under util\ccc.
    L1: Completed with no issues.
    L2: On step 10/12, a popup window indicates "Hp Installer Uninstaller has stopped working".  I click "Close Program" and that's the end of the processing.  
    L3: Same as L2.  But, after closing the program, a pop-up window asks "Are you sure you want to remove  from your computer?"  (FYI - No, I did not miss anything here.  That is exactly as it is printed.  There seems to be 2 spaces between "remove" and "your" as if a filename or program name should go here.)  I click "Yes", eventually the screen indicates 100% complete and I click "OK".  This sequence happens 3 more times (pop-up followed by a 100% complete screen).  After the 4th time, a screen indicates the process is complete, I hit "Finish" and the computer automatically reboots.
    L4: Exactly the same as L3.
    At times when step 10/12 failed, the "Current Progress" will be stopped on "Software\Wow6432\Hewlett-Packard\" followed by other registry entries.  I've searched through the registry and I can find only one entry that matches this: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432\Hewlett-Packard.  But, none of the entries that follow that on the "Current Progress" bar match any entries.  (Ex: Software\Wow6432\Hewlett-Packard\DigitalImaging\CUE Settings.  This key does not exist.  There is a HKEY_CURRENT_USER\Software\Hewlett-Packard\DigitalImaging\CUE Settings, but not one tagged with the "Wow6432" entry.
    Anyway, it looks like something has gone wrong with this computer's registry.  I reluctant to start hacking away at the registry.
    I could use some more suggestions.
    Thanks!
    Ted

Maybe you are looking for