lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xing Li <x...@mac.com>
Subject RE: SIMPLE Lucene / MySQL Indexer
Date Wed, 13 Jul 2005 12:38:15 GMT
Kalus,

Just a few days ago I couldn't even remember how to compile java code. Last time I touched
java was like 2001. Don't worry, Lucene is extremely easy, once you know a bit of fund java.
It's no different than any other language. Just syntax. I recommend Java from Deitel &
Deitel. Fell in love with their practical written style back in college. 

Below is what I whipped up quick to test mysql connections...

Just add  the following to an lucene book sample. You need to download ConnectJ jdbc driver
from mysql site and put the jar file in your path variable. 

my_db db = new my_db();
db.connect();

ResultSet = rs;

rs = db.query("select * from mytable limit 100");

whiel(rs.next()) {
....... = rs.getString("mysqltablefieldname"); //return string value of mysql row/column....
...copy code from lucene...
}.


import java.sql.*;

public class my_db {

        public Connection conn = null;
        public Statement stmt = null;
        public boolean loaded = false;

        public boolean load() {
                try {
                        // The newInstance() call is a work around for some
                        // broken Java implementations

                        Class.forName("com.mysql.jdbc.Driver");
                        return true;
                } catch (Exception ex) {

                        System.out.println("Cannot load mysql driver.");
                        return false;
                        // handle the error
                }

        }

        public boolean connect() {
                if(loaded == false) {
                        loaded = load();
                }

                if(loaded == false) {
                        System.out.println("Can't load driver.");
                        return false;
                }
try {
                        conn = DriverManager.getConnection("jdbc:mysql://ip:port/dbname?user=user&password=pass");

                        stmt = conn.createStatement();
                        stmt.executeQuery("SET NAMES 'utf8'");

                        return true;
                }
                catch (SQLException ex) {
                        // handle any errors
                        System.out.println("SQLException: " + ex.getMessage());
                        System.out.println("SQLState: " + ex.getSQLState());
                        System.out.println("VendorError: " + ex.getErrorCode());
                        return false;
                }
        }

        public ResultSet query(String sql) {
                try {
                        return stmt.executeQuery(sql);
                }
                catch (SQLException ex) {
                        // handle any errors
                        System.out.println("SQLException: " + ex.getMessage());
                        System.out.println("SQLState: " + ex.getSQLState());
                        System.out.println("VendorError: " + ex.getErrorCode());
                        return null;
                }
        }

      
}




On Wednesday, July 13, 2005, at 05:23AM, Klaus Hubert <klaus_hubert@yahoo.com> wrote:

>Hi Xing,
>
>I have the book and as I wrote in my initial message I
>managed to create the
>sample index as well managed to read mySQL. But I seem
>to be not able to
>combine those programs :-( I'm very new to Java and I
>haven't found a nice
>Debugger so far to go step by step through my code. I
>will try today all day
>to get this fixed. I know, it shouldn't be too
>difficult.
>
>Thank you,
>
>  Klaus 
>
>-----Original Message-----
>From: Xing Li [mailto:xing@mac.com] 
>Sent: Wednesday, July 13, 2005 2:15 PM
>To: java-user@lucene.apache.org
>Subject: RE: SIMPLE Lucene / MySQL Indexer
>
>Don't make the mistake of complicating the task. Just
>read straight from
>mysql into lucene via java. There is no benefit of
>exporting data to xml
>just to regrab the data back into lucene. 
>
>Get the Lucene In actioin book if you haven't cause
>all the samples there
>are real-world practical. Are you need to add is 10
>lines of mysql type
>java/jdbc code and you are ready to create your first
>index. Download luke
>for lucene, GUI testing tool so you can browse the
>index, perform searches,
>validate/test search performan bottlenecks, dissect
>queries, etc.
>
>
>On Wednesday, July 13, 2005, at 05:04AM, Klaus Hubert
><klaus_hubert@yahoo.com> wrote:
>
>>Hi Ian,
>>
>>That's something I'm looking for. Right, a simple
>source code which 
>>reads a database and adds the fields to the index.
>What I've found also 
>>so far is another solution at 
>>http://www-128.ibm.com/developerworks/java/library/j-lucene/.
>>First step is
>>to export my MySQL database in simple XML and go from
>there. It is just 
>>an additional step and I would stick with this if I
>don't find another 
>>method to do all at once.
>>
>>Thanks,
>>
>>  Klaus
>>
>>-----Original Message-----
>>From: Ian Lea [mailto:ian.lea@gmail.com]
>>Sent: Wednesday, July 13, 2005 10:19 AM
>>To: java-user@lucene.apache.org
>>Subject: Re: SIMPLE Lucene / MySQL Indexer
>>
>>Something like this?
>>
>>IndexWriter iw = whatever
>>ResultSet rs = whatever
>>
>>while (rs.next()) {
>>   Document ldoc = new Document();
>>   ldoc.add(Field.Text("f1", rs.getString("f1"));
>>   ldoc.add(Field.Unstored("f2", rs.getString("f2"));
>>   ldoc.add(Field.Keyword("f3", rs.getString("f3"));
>>   ...
>>   iw.addDocument(ldoc);
>>}
>>
>>rs.close();
>>iw.close();
>>
>>
>>On the IDE front, most people seem to use Eclipse
>nowadays.
>>
>>
>>--
>>Ian.
>>
>>On 13/07/05, Klaus Hubert <klaus_hubert@yahoo.com>
>>wrote:
>>> Hi,
>>> 
>>> I played with several search engines to replace
>>MySQL FULLTEXT index
>>> and hope that Lucene is the best solution for that.
>>> 
>>> I am reading Mannings book on Lucene in action and
>>it seems to be the
>>> most powerful search engine I found so far.
>>> 
>>> I'm stuck at some problem and need help from you
>>experts. I managed to
>>> create an index as described in the examples. I
>also
>>managed to read a
>>> MySQL database in Java.
>>> 
>>> My question is, if anybody here has some SIMPLE
>>example which does
>>> this in one step. I am good in PHP and in Visual
>>Basic, but very new
>>> to Java. Maybe I'm using the wrong tools (NetBeans
>>IDE and JCreator)
>>> but I don't get it managed to create an Lucene
>Index
>>on 3 database
>>> fields.
>>> 
>>> I appreciate any help.
>>> 
>>> Thank you so much,
>>> 
>>>   Klaus
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail:
>>java-user-unsubscribe@lucene.apache.org
>>For additional commands, e-mail:
>>java-user-help@lucene.apache.org
>>
>>
>>
>>__________________________________________________
>>Do You Yahoo!?
>>Tired of spam?  Yahoo! Mail has the best spam
>protection around 
>>http://mail.yahoo.com
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail:
>java-user-unsubscribe@lucene.apache.org
>>For additional commands, e-mail:
>java-user-help@lucene.apache.org
>>
>>
>>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail:
>java-user-unsubscribe@lucene.apache.org
>For additional commands, e-mail:
>java-user-help@lucene.apache.org
>
>
>
>
>		
>____________________________________________________
>Start your day with Yahoo! - make it your home page
>http://www.yahoo.com/r/hs
> 
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
>For additional commands, e-mail: java-user-help@lucene.apache.org
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
For additional commands, e-mail: java-user-help@lucene.apache.org


Mime
View raw message