David Fraser
davidf at sjsoft.com
Tue Aug 16 08:39:58 EDT 2005
We use PyLucene too and its fantastic, but just be aware that if you run Apache in multi-threaded mode (e.g. under Windows) there are conflicts with the gcj threading (for which there are also workarounds, mainly running a separate process for PyLucene) Julien wrote: >Why not using PyLucene ? http://pylucene.osafoundation.org/ > >It's a SWIG python port of Java Lucene, and it works perfeclty with >mod_python (we use it every day here at work) > >On Tue, 2005-08-16 at 15:53 +0530, Manjeet Chaudhary wrote: > > >>Hello All >> >>I am using mod_python and Lucene for searching of Arabic Text from an >>Index created using Lucene+Java. >>I am facing some problems in running "java" command using mod_python. >> >>1. I am trying to run java program using "os.system" command. >> Check = os.system("java ..........") >> >>2. The command returns me a value of 256. >> i.e Check = 256 >> >>3. I am not able to figure it out why that java program is not being >>executed properly. >> >>4. For the java program i have set the classpath and compiling and >>running that program using the classpath. >> >> export CLASSPATH = >>/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/lucene-1.4.3.jar >>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/PDFBox-0.6.7a.jar >>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/log4j-1.2.8.jar >>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/tm-extractors-0.4.jar >>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/ArabicAnalyzer-1.0b.jar >>:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/commons-collections-3.1.jar >> >> javac -classpath $CLASSPATH:. SearchFiles.java >> >> java -classpath $ClASSPATH:. SearchFiles >> >>5. SearchFiles program is running properly if i run it from shell. >> >>So please help me and tell where i am going wrong. >>I have attached the copy of code at the end . >> >>Thank you >>Manjeet Chaudhary >> >> >> >>#!/usr/bin/env python >>""" >>#------------------------------------------------------------------------------------------------------- >>#Name: ar_search.py >>#Version: 1.0 >>#Purpose: Searching for Infoviewer >>#Author: Alok Khandelwal >>#Created: 10-08-2005 >>#Licence: Infogrid Pacific EULA >>#-------------------------------------------------------------------------------------------------------- >>#Revision History >>#-------------------------------------------------------------------------------------------------------- >> >>#----------------Different modules required are imported >>here------------------- >>""" >>import cgitb,cgi,sys >>cgitb.enable() >>import os >>from os.path import join, abspath >>from mod_python import apache,util,Session >>""" >>#----------------End of importing >>modules---------------------------------------- >> >> >>def search(req): >> >> """This part takes Arabic keyword from req variable and write that >>keyword into a temp file. This temp file will be opened by java program >>and that program will take that value and search for the variable in the >>index file. >>Java program will store the result in results.txt file""" >> >> The_Form = util.FieldStorage(req) >> for name in The_Form.keys(): >> #--------Checking for the selected Fields and turning those flag >>on-------- >> if name == 'search_contents': >> value=The_Form[name] >> value.encode('utf-8') >> f=open("/home/ajinkyan/cgi-bin/infoviewer/temp.txt","w") >> f.write(value) >> f.close() >> >> try: >> command = "export >>CLASSPATH=/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/lucene-1.4.3.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/PDFBox-0.6.7a.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/log4j-1.2.8.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/tm-extractors-0.4.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/ArabicAnalyzer-1.0b.jar:/home/ajinkyan/cgi-bin/infoviewer/Jar_Files/commons-collections-3.1.jar" >> import os >> os.system(command) >> command = "java -classpath >>$CLASSPATH:/home/ajinkyan/cgi-bin/infoviewer SearchFiles" >> check=os.system(command) >> req.write("\ncheck = " + str(check)) >> f = open( >>"/home/ajinkyan/cgi-bin/infoviewer/results.txt","r") >> result=f.read() >> req.write(result) >> except: >> >> req.write("\n") >> req.write(str(sys.exc_type)) >> req.write("\n") >> req.write(str(sys.exc_value)) >> >> >> >>____________________________________________________________________________________________________________________________ >> >># After executing the os.system command the value returned in check is >>maximum times 256 or some thing near 32000 . >> >># Java program is running independently without any errors. Only when it >>is called using os.system it doesn't run . >> >># The Java program is as follows >> >>___________________________________________________________________________________________________________________________ >> >> >>/** >>* @Name : SearchFiles.java >>* @Version: 1.0 >>* @Author : Alok Khandelwal >>* @Created: 2 August 2005 >>* @Purpose: Searching in index for arabic contents >>* @Copyright:(c)2004 by Infogrid Pacific Pte. Ltd. >>* @Licenece :Infogrid Pacific Eula >>*/ >> >> >> >> >>import org.apache.lucene.search.Searcher; >>import org.apache.lucene.search.IndexSearcher; >>import org.apache.lucene.search.Query; >>import org.apache.lucene.search.Hits; >>import org.apache.lucene.queryParser.QueryParser; >>import gpl.pierrick.brihaye.aramorph.lucene.ArabicStemAnalyzer; >>import java.io.*; >>import org.apache.lucene.document.Document; >>class SearchFiles >>{ >> public static void main(String[] args) >> { >> try >> { >> FileInputStream fis = new FileInputStream(new File ( >>"/home/ajinkyan/cgi-bin/infoviewer/temp.txt")); >> BufferedReader in = new BufferedReader(new >>InputStreamReader(fis,"UTF8")); >> char [] buf = new char[80]; >> int numRead; >> numRead=in.read(buf,0,80); >> String field="\""; >> for(int k=0;k<numRead;k++) >> { >> field=field+buf[k]; >> } >> field=field+"\""; >> FileOutputStream fos = new FileOutputStream(new File ( >>"/home/ajinkyan/cgi-bin/infoviewer/results.txt")); >> BufferedWriter out = new BufferedWriter(new >>OutputStreamWriter(fos,"UTF8")); >> Searcher searcher = new >>IndexSearcher("/home/ajinkyan/cgi-bin/infoviewer/index_arabic"); >> try >> { >> Query query = QueryParser.parse(field, "contents", >>new ArabicStemAnalyzer()); >> Hits hits = searcher.search(query); >> String output="Total match document = \n"; >> for(int j=0;j<hits.length();j++) >> { >> Document doc = hits.doc(j); >> // System.out.print(hits.score(j)+" "); >> output = output +"\n"+ doc.get("filename"); >> } >> out.write(output); >> out.write("\n"); >> } >> catch(Exception e) >> { >> out.write("Parser Error"); >> out.write("\n"); >> >> } >> searcher.close(); >> out.close(); >> } >> catch (Exception e) >> { >> String s= " caught a " + e.getClass() + >> "\n with message: " + e.getMessage(); >> } >> }//end of main >>}//end of SerchFiles >>_______________________________________________ >>Mod_python mailing list >>Mod_python at modpython.org >>http://mailman.modpython.org/mailman/listinfo/mod_python >> >> >>
|