
For example, when processing the query “ United States“, text analysis components will only see one word at a time: first “ United“, and then in a separate analysis session, “ States“. The Cause: Query Parsers Split on WhitespaceĪt the root of the problem is a parsing strategy employed by Solr’s query parsers: before it’s sent to be analyzed, the query text is first split on whitespace.
#QUERIOUS QUERY ALALYSIS UPGRADE#
People have gone to considerable lengths to address this problem, but none of those indirect solutions has to-date been incorporated in Solr, so adoptees have been forced to deal with choppy upgrade paths. Solr’s query parsers have had a long-standing problem: matching multi-word synonyms at query-time hasn’t been directly possible. Solr History: Q: Multi-Word Query-Time Synonyms? A: No. This can be a deal-breaker for indexes that take a long time to create, or for those with source access problems. Second, to modify index-time synonym expansion, you have to completely re-index. As a result, phrase query “ United States sales” will not match this document, and phrase query “ United sales” will improperly match.


(This is called “sausagization” because of the way overlapping terms are represented – compare to the “word lattice” in the illustration at the top of this page.)įor example, if index-time synonym expansion “ US, United States” is performed on a document containing the sentence “ US sales increased“, it will be indexed with “ United” and “ US” occupying one position, and “ States” and “ sales” occupying the next (see below). Because Lucene’s index format stores per-token position information to support phrase queries, but does not store position length information, multi-word synonyms can line up improperly with the surrounding words, causing some synonym-containing phrase queries that should match not to, and some that shouldn’t to improperly match. This is where Solr managed synonyms comes in.įirst, phrase queries that span expanded multi-word synonyms can fail. Index-time synonym expansion is an alternative to query-time expansion, but expanding synonyms at index-time has two major problems. Thank you.Solr has gained multi-word query-time synonym management support in the edismax and standard/”lucene” query parsers.Ĭool, right? But why should you care? Index-time Synonym Expansion Has Problems If you prefer that we perform the migration for you, do not hesitate to contact without obligation on our contact page. With one email per month you will be informed of all our content. If you do not want to miss our publications, subscribe to our newsletter. We hope that you find the entrance useful and that it saves you some scare in the future. Once the migration is finished, we leave the parameter as it was previously: alter system reset "_lm_share_lock_opt" scope=spfile sid='*' With these times it is already possible to carry out the migration without problems, so we save the parameter for future migrations. The import of the procedures has taken less than 3sg!! Once done we test the import again with parallel 8 and the result is: 12-AUG-21 14:53:54.121: Processing object type DATABASE_EXPORT/SCHEMA/PROCEDURE/PROCEDUREġ2-AUG-21 14:53:56.577: Processing object type DATABASE_EXPORT/SCHEMA/PROCEDURE/GRANT/OWNER_GRANT/OBJECT_GRANT We make the parameter change and restart the two instances. Option 1 we have already seen that it is not viable, so we move on to try option 2. When we see the possible solutions we see:ġ/ Run metadata import with parallel=1 (default).Ģ/ Disable S-Optimization using: ALTER SYSTEM SET "_lm_share_lock_opt"=FALSE SCOPE=SPFILE SID='*' It seems that it is a failure that occurs since 12.2 in the blocking mechanism in the import processes. ‘Library Cache Lock’ (Cycle) Seen During DataPump Import in 12.2 RAC Environment (Doc ID 2407491.1) Researching in metalink we have found this note: In this case, the passage of the procedures has been solved in a very short time but the import of the tables causes us to leave the migration window, so we have a problem. Seeing that the only sessions in the database are those of the import we have tried to perform the import with PARALLEL=1 to see the behavior.


When reviewing the waits of the import sessions we see that they stay in Library Cache Lock, being able to take almost 200 seconds for a single procedure and when there are many the times are extended more than the account. Only in the step of creating the stored procedures has taken 2 and a half hours!!? 😨😨 Let’s see why it’s taking time
