One approach is to extend SynonymFilter so that it reads synonyms from database instead of a file. SynonymFilter is just a Java class so you can do whatever you want with it :D. From what I remember, the filter initialises a list of all input synonyms and store them in memory. Therefore, you need to make sure that all the synonyms can fit into memory at runtime.
On Nov 20, 2007 1:54 AM, Kishore AVK. Veleti <[EMAIL PROTECTED]> wrote: > Hi Eswar, > > Thanks for the update. > > I have gone through the below link provided by you and what I understood from > it is, we need to have all possible synonyms in a text file. This file need > to be given as input for "SynonymFilterFactory" to work. If my understanding > is right then the approach may not suit my requirement. Reason is I need to > find synonyms of all the keywords in category description and store those > synonyms in the above said input file. The file may be too big. > > Let me know if my understanding is wrong. > > > Thanks, > Kishore Veleti A.V.K. > > > > > -----Original Message----- > From: Eswar K [mailto:[EMAIL PROTECTED] > Sent: Monday, November 19, 2007 11:22 AM > To: solr-user@lucene.apache.org > Subject: Re: Finding all possible synonyms for a word > > Kishore, > > Solr has a SynonymFilterFactory which might be off use to you ( > http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters#head-2c461ac74b4ddd82e453dc68fcfc92da77358d46) > > > Regards, > Eswar > > On Nov 18, 2007 10:39 PM, Kishore AVK. Veleti <[EMAIL PROTECTED]> > wrote: > > > Hi All, > > > > I am new to Lucene / SOLR and developing a POC as part of research. Check > > below my requirement and problem statement. Need help on how I can index the > > data such data I have a very good search functionality in my POC. > > > > ------------------------------------------------------------------ > > Requirement: > > ------------------------------------------------------------------ > > > > Assume my web application is an Online book store and it sell all > > categories of books like Computers, Social Studies, Physical Sciences etc. > > Each of these categories has sub-categories. For example Computers has > > sub-categories like Software Engineering, Java, SQL Server etc > > > > I have a database table called Categories and it contains both Parent > > Category descriptions and also Child Category descriptions. > > > > Data structure of Category table is: > > > > Category_ID_Primay_Key integer > > Parent_Category_ID integer > > Category_Name varchar(100) > > Category_Description varchar(1000) > > > > > > ------------------------------------------------------------------ > > My Search UI: > > ------------------------------------------------------------------ > > > > My search page is very simple. We have a text field with "Search" button. > > > > ------------------------------------------------------------------ > > User Action: > > ------------------------------------------------------------------ > > > > User enter below search text in above text field and clicks on "Search" > > button. > > > > "Books on Data Center" > > > > ------------------------------------------------------------------ > > What is my expected behavior: > > ------------------------------------------------------------------ > > > > Since the word "Data Center" more relevant computers I should show books > > related to computers. > > > > ------------------------------------------------------------------ > > My Problem statement and Question to you all: > > ------------------------------------------------------------------ > > > > To have a better search in my web applications what kind of strategy > > should I have and index the data accordingly in SOLR/Lucene. > > > > In my Lucene Index I may or may not have the word "data center". Still I > > should be able to return "data center" > > > > One thought I have is as follows: > > > > Modify the Category table by adding one more column to it: > > > > Category_ID_Primay_Key integer > > Parent_Category_ID integer > > Category_Name varchar(100) > > Category_Description varchar(1000) > > Category_Description_Keywords varchar(8000) > > > > Now take each word in "Category_description", find synonyms of it and > > store that data in Category_Description_Keywords column. After doing it, > > index the Category table records in SOLR/Lucene. > > > > Below are my questions to you all: > > > > Question 1: > > Need your feedbacks on above approach or any other approach which help me > > to make my search better that returns most relevant results to the user. > > > > Question 2: > > Can you suggest me Java based best Open Source or commercial synonym > > engines. I want such a best synonym engine that gives me all possible > > synonyms of a word. > > > > > > > > Thanks in Advance, > > Kishore Veleti A.V.K. > > > -- Regards, Cuong Hoang