Hello Anand,
please make sure to send all help requests to the mailing list - this way all users can benefit from it.
At the moment I don't see much potential to improve your query (but I am no expert on full-text search, so this is merely my opinion). The "all words" keywords are unnecessary, as you only use one word.
The most important consideration is if the Full-Text Index is actually applied to your query. You can check by analyzing the query info, something like "Applying full-text index" should be found. You can find more information at https://docs.basex.org/wiki/Full-Text#Index_Processing So, have you created a Full-Text Index? This should definitely be your first step, as this will certainly boost your performance. You should also check the query info as suggested and also take a look at the optimized query plan given by the compiler, as this can point you to some bottlenecks in your query.
Cheers, Dirk
On 28/12/13 10:25, Anand Chiney wrote:
Dear Dirk,
How are you ?
Need some help on using ft:search() in following condition, if applicable.
Following is the structure of XML file. Around 6 GB of articles in 3 XML DBs
<Docs> <Doc> <Title name="Speed of Light" author="John Best" /> <SDesc> <Summary> <SSum> <Keyword w="Speed of Light"/> Short Summary Text here. </SSum> <LSum> Long Summary. </LSum> </Summary> </SDesc> <LDesc> Complete Description of the Article. </LDesc> </Doc> <Doc> <Title name="Vibration Analysis" author="John Best" /> <SDesc> <Summary> <SSum> <Keyword w="Vibration"/> Short Summary Text here. </SSum> <LSum> <P>Long Summary Para 1</P> <P>Long Summary Para 2</P> </LSum> </Summary> </SDesc> <LDesc> Complete Description of the Article. </LDesc> </Doc> </Docs>
Execution of below query is taking around 1 min !!!
for $db in("Doc1","Doc2", "Doc3") for $x in doc($db)/Docs/Doc where $x/SDesc/Summary/SSum/Keyword/lower-case(@w) contains text "vibration" and ($x/SDesc/Summary/LSum/P/text() contains text "spring" all words or SDesc/Summary/SSum/text() contains text "spring" all words) return $x/Title/@name
Can this be queried using ft:search() ? I tried but failed.
basex-talk@mailman.uni-konstanz.de