Julien
jcigar at ulb.ac.be
Tue Aug 16 07:11:48 EDT 2005
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 > -- Julien Cigar (jcigar at ulb.ac.be) Belgian Biodiversity Information Facility Université Libre de Bruxelles Campus de la Plaine CP 257 Bâtiment NO, Bureau 4 N4 115C (Niveau 4) Boulevard du Triomphe, entrée ULB 2 B-1050 Bruxelles http://www.bebif.be
|