<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1264" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello Ernesto,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>i assume you are using the unpatched version 1.3 of 
the search module.</FONT></DIV>
<DIV><FONT face=Arial size=2>As i mentioned yesterday, the plainDocFactory does 
only index cmsFiles of type "plain" but not of type "binary". PDF files are 
stored as binary.</FONT></DIV>
<DIV><FONT face=Arial size=2>I suggest to use the version i posted yesterday. 
Then your registry.xml would have to look like this:</FONT></DIV>
<DIV><FONT face=Arial size=2>...</FONT></DIV>
<DIV><FONT face=Arial size=2><docFactories></FONT></DIV>
<DIV><FONT face=Arial size=2>...</FONT></DIV>
<DIV><FONT face=Arial size=2>   <docFactory type="plain" 
enabled="true"></FONT></DIV>
<DIV><FONT face=Arial size=2>...</FONT></DIV>
<DIV><FONT face=Arial size=2>   </docFactory></FONT></DIV>
<DIV><FONT face=Arial size=2>   <docFactory type="binary" 
enabled="true"></FONT></DIV>
<DIV><FONT face=Arial size=2>      <fileType 
name="pdftext"><BR>         
<extension>.pdf</extension><BR>         
<class>net.grcomputing.opencms.search.lucene.PDFDocument</class><BR>      
</fileType></FONT></DIV>
<DIV><FONT face=Arial size=2>   </docFactory></FONT></DIV>
<DIV><FONT face=Arial size=2>...</FONT></DIV>
<DIV><FONT face=Arial size=2></docFactories></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Important: The type attribute must match the file 
types of OpenCms (also defined in the registry.xml).</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Bye,</FONT></DIV>
<DIV><FONT face=Arial size=2>Stephan</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=edesantis@fibertel.com.ar 
  href="mailto:edesantis@fibertel.com.ar">Ernesto De Santis</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A 
  title=lucene-user@jakarta.apache.org 
  href="mailto:lucene-user@jakarta.apache.org">Lucene Users List</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=opencms-dev@opencms.org 
  href="mailto:opencms-dev@opencms.org">opencms-dev@opencms.org</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Thursday, October 23, 2003 4:16 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> [opencms-dev] Index pdf files 
  with your content in lucene.</DIV>
  <DIV><BR></DIV>
  <DIV><FONT face=Arial size=2>Hello</FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>I am new in opencms and lucene tecnology. 
  </FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>I won index pdf files, and index de content of 
  this files.</FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>I work in this way:</FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>Make a PDFDocument class like 
  JspDocument class. </FONT></DIV>
  <DIV><FONT face=Arial size=2>use org.textmining.text.extraction.PDFExtractor 
  class, this class work fine out of vfs.</FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>and write my registry.xml for pdf document, in 
  plainDocFactory tag.</FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial 
  size=2>                    
  <fileType 
  name="pdftext"><BR>                        
  <extension>.pdf</extension><BR>                        
  <!-- This will strip tags before processing 
  --><BR>                        
  <class>net.grcomputing.opencms.search.lucene.PDFDocument</class><BR>                    
  </fileType><BR></DIV></FONT>
  <DIV><FONT face=Arial size=2>my PDFDocument content this code:</FONT></DIV>
  <DIV><FONT face=Arial size=2>I think that the probrem is how take the content 
  from CmsFile?, what InputStream use?</FONT></DIV>
  <DIV>
  <DIV><FONT face=Arial size=2>PDFExtractor work with extractText(InputStream) 
  method.</FONT></DIV></DIV>
  <DIV><FONT face=Arial size=2><B><FONT color=#7f0055 
  size=2></FONT></B></FONT> </DIV>
  <DIV><FONT face=Arial size=2><B><FONT color=#7f0055 
  size=2>public</B></FONT><FONT size=2> </FONT><B><FONT color=#7f0055 
  size=2>class</B></FONT><FONT size=2> PDFDocument </FONT><B><FONT color=#7f0055 
  size=2>implements</B></FONT><FONT size=2> I_DocumentConstants, 
  I_DocumentFactory {</DIV>
  <DIV>
  <P></P>
  <P></FONT><B><FONT color=#7f0055 size=2>public</B></FONT><FONT size=2> 
  PDFDocument(){</P>
  <P>}</P>
  <P></P>
  <P></FONT><B><FONT color=#7f0055 size=2>public</B></FONT><FONT size=2> 
  Document Document(CmsObject cmsobject, CmsFile cmsfile)</P>
  <P></FONT><B><FONT color=#7f0055 size=2>throws</B></FONT><FONT size=2> 
  CmsException </P>
  <P>{</P>
  <P></FONT><B><FONT color=#7f0055 size=2>return</B></FONT><FONT size=2> 
  Document(cmsobject, cmsfile, </FONT><B><FONT color=#7f0055 
  size=2>null</B></FONT><FONT size=2>);</P>
  <P>}</P>
  <P></FONT><B><FONT color=#7f0055 size=2>public</B></FONT><FONT size=2> 
  Document Document(CmsObject cmsobject, CmsFile cmsfile, HashMap hashmap)</P>
  <P></FONT><B><FONT color=#7f0055 size=2>throws</B></FONT><FONT size=2> 
  CmsException</P>
  <P>{</P>
  <P>Document document=(</FONT><B><FONT color=#7f0055 size=2>new</B></FONT><FONT 
  size=2> BodylessDocument()).Document(cmsobject, cmsfile);</P>
  <P></P>
  <P></FONT><FONT color=#3f7f5f size=2>//put de content in the pdf 
  file.</P></FONT><FONT size=2>
  <P>String contenido = </FONT><B><FONT color=#7f0055 size=2>new</B></FONT><FONT 
  size=2> String(cmsfile.getContents());</P>
  <P>StringBufferInputStream in = </FONT><B><FONT color=#7f0055 
  size=2>new</B></FONT><FONT size=2> 
  StringBufferInputStream(contenido);</P></FONT><FONT color=#3f7f5f size=2>
  <P>// ByteArrayInputStream in = new 
  ByteArrayInputStream(contenido.getBytes());</P></FONT><FONT size=2>
  <P></P></FONT><FONT color=#3f7f5f size=2>
  <P>/* try{</P>
  <P>FileInputStream in = new FileInputStream (cmsfile.getPath() + 
  cmsfile.getName());</P>
  <P>*/</P></FONT><FONT size=2>
  <P>PDFExtractor extractor = </FONT><B><FONT color=#7f0055 
  size=2>new</B></FONT><FONT size=2> PDFExtractor();</P>
  <P>String body = extractor.extractText(in);</P>
  <P></P>
  <P>document.add(Field.Text(</FONT><FONT color=#2a00ff 
  size=2>"body"</FONT><FONT size=2>, body));</P></FONT><FONT color=#3f7f5f 
  size=2>
  <P>/* }catch(FileNotFoundException e){</P>
  <P>e.toString();</P>
  <P>throw new CmsException();</P>
  <P>}</P>
  <P></P>
  <P>*/</FONT><FONT size=2> </P>
  <P></FONT><B><FONT color=#7f0055 size=2>return</B></FONT><FONT size=2> 
  (document);</P>
  <P>}</P></FONT></FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>thanks<BR>Ernesto</FONT></DIV>
  <DIV><FONT face=Arial size=2>PD: Sorry for my poor english.</FONT></DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2></FONT> </DIV>
  <DIV><FONT face=Arial size=2>----- Original Message ----- </FONT>
  <DIV><FONT face=Arial size=2>From: "Hartmann, Waehrisch & Feykes GmbH" 
  <</FONT><A href="mailto:hartmann@waehrisch-feykes.de"><FONT face=Arial 
  size=2>hartmann@waehrisch-feykes.de</FONT></A><FONT face=Arial 
  size=2>></FONT></DIV>
  <DIV><FONT face=Arial size=2>To: <</FONT><A 
  href="mailto:opencms-dev@opencms.org"><FONT face=Arial 
  size=2>opencms-dev@opencms.org</FONT></A><FONT face=Arial 
  size=2>></FONT></DIV>
  <DIV><FONT face=Arial size=2>Sent: Wednesday, October 22, 2003 3:50 
  AM</FONT></DIV>
  <DIV><FONT face=Arial size=2>Subject: Re: [opencms-dev] (no 
  subject)</FONT></DIV></DIV>
  <DIV><FONT face=Arial><BR><FONT size=2></FONT></FONT></DIV><FONT face=Arial 
  size=2>> Hi Ben,<BR>> <BR>> i think this won't work since the 
  plainDocFactory will only be used for<BR>> files of type "plain" but not 
  for files of type "binary".<BR>> Recently we have done some additions to 
  the module - by order of Lenord,<BR>> Bauer & Co. GmbH - that could 
  meet your needs. It introduces a more flexible<BR>> way of defining 
  docFactories that you can add new factories without having<BR>> to 
  recompile the whole module. So other modules (like the news) can bring<BR>> 
  their own docFactory and all you have to do is to edit the 
  registry.xml.<BR>> Here is an example:<BR>> <BR>> 
              
  <docFactories><BR>> 
                  
  <docFactory enabled="true" type="plain"><BR>> 
                      
  <fileType name="plaintext"><BR>> 
                          
  <extension>.txt</extension><BR>> <BR>> 
  <class>net.grcomputing.opencms.search.lucene.PlainDocument</class><BR>> 
                      
  </fileType><BR>> 
                  
  </docFactory><BR>> 
                  
  <docFactory enabled="true" type="news"><BR>> <BR>> 
  <class>net.grcomputing.opencms.search.lucene.NewsDocument</class><BR>> 
                  
  </docFactory><BR>> 
              
  </docFactories><BR>> <BR>> To index binary files all you need to 
  add is this:<BR>> <BR>> 
             <docFactory 
  enabled="true" type="binary"><BR>> <BR>> 
  <class>net.grcomputing.opencms.search.lucene.BodylessDocument</class><BR>> 
             
  </docFactory><BR>> <BR>> There should be no need for an extension 
  mapping.<BR>> <BR>> For the interested people:<BR>> For 
  ContentDefinitions (like news) i introduced the following:<BR>> 
              
  <contentDefinitions><BR>> 
                  
  <contentDefinition type="news"> <!-- must match docFactory<BR>> 
  type --><BR>> <BR>> 
  <class>com.opencms.modules.homepage.news.NewsContentDefinition</class><BR>> 
  <BR>> 
  <initClass>net.grcomputing.opencms.search.lucene.NewsInitialization</initCla<BR>> 
  ss><BR>> 
                      
  <listMethod name="getNewsList"><BR>> 
                          
  <param type="java.lang.Integer">1</param><BR>> 
                          
  <param type="java.lang.String">-1</param><BR>> 
                      
  </listMethod><BR>> 
                      
  <page uri="/news.html?__element=entry"><BR>> 
                          
  <param method="getIntId" name="newsid"/><BR>> 
                      
  </page><BR>> 
                  
  </contentDefinition><BR>> <BR>> In short:<BR>> initClass is 
  optional: For the news the news classes have to be loaded to<BR>> 
  initialize the db pool.<BR>> listMethod: a method of the content definition 
  class that returns a List of<BR>> elements<BR>> page: the page that can 
  display an entry. Here a jsp that has a template<BR>> element "entry". It 
  also needs the id of the news item.<BR>> getIntId is a method of the 
  content definition class and newsid is the url<BR>> parameter the page 
  needs. A link like<BR>> news.html?__element=entry&newsid=xy<BR>> 
  will be generated.<BR>> <BR>> Best regards,<BR>> Stephan<BR>> 
  <BR>> <BR>> ----- Original Message ----- <BR>> From: "Ben Rometsch" 
  <</FONT><A href="mailto:ben@solidstategroup.com"><FONT face=Arial 
  size=2>ben@solidstategroup.com</FONT></A><FONT face=Arial size=2>><BR>> 
  To: <</FONT><A href="mailto:opencms-dev@opencms.org"><FONT face=Arial 
  size=2>opencms-dev@opencms.org</FONT></A><FONT face=Arial size=2>><BR>> 
  Sent: Wednesday, October 22, 2003 6:15 AM<BR>> Subject: [opencms-dev] (no 
  subject)<BR>> <BR>> <BR>> > Hi Matt,<BR>> ><BR>> > I 
  am not having any joy! I've updated my registry.xml file, with the<BR>> 
  > appropriate section reading:<BR>> ><BR>> > 
  <luceneSearch><BR>> > 
  <mergeFactor>100000</mergeFactor><BR>> > 
  <permCheck>true</permCheck><BR>> > 
  <indexDir>c:\search</indexDir><BR>> ><BR>> > 
  <analyzer>org.apache.lucene.analysis.standard.StandardAnalyzer</analyzer><BR>> 
  > <subsearch>true</subsearch><BR>> > 
  <project>online</project><BR>> > 
  <docFactories><BR>> > <pageDocFactory 
  enabled="true"><BR>> ><BR>> > 
  <class>net.grcomputing.opencms.search.lucene.PageDocument</class><BR>> 
  > </pageDocFactory><BR>> > <plainDocFactory 
  enabled="true"><BR>> > <fileType name="plaintext"><BR>> > 
  <extension>.txt</extension><BR>> ><BR>> > 
  <class>net.grcomputing.opencms.search.lucene.PlainDocument</class><BR>> 
  > </fileType><BR>> > <fileType name="taggedtext"><BR>> 
  > <extension>.html</extension><BR>> > 
  <extension>.htm</extension><BR>> > 
  <extension>.xml</extension><BR>> > <!-- This will strip 
  tags before processing<BR>> > --><BR>> ><BR>> > 
  <class>net.grcomputing.opencms.search.lucene.TaggedPlainDocument</class><BR>> 
  > </fileType><BR>> ><BR>> > <!-- Index binary 
  documents --><BR>> > <fileType name="plaindocument"><BR>> 
  > <extension>.doc</extension><BR>> > 
  <extension>.xls</extension><BR>> > 
  <extension>.pdf</extension><BR>> ><BR>> > 
  <class>net.grcomputing.opencms.search.lucene.BodylessDocument</class><BR>> 
  > </fileType><BR>> ><BR>> > 
  </plainDocFactory><BR>> > <jspDocFactory 
  enabled="true"><BR>> ><BR>> > 
  <class>net.grcomputing.opencms.search.lucene.JspDocument</class><BR>> 
  > </jspDocFactory><BR>> > <xmlTemplateDocFactory 
  enabled="false"/><BR>> > </docFactories><BR>> > 
  <directories><BR>> > <directory 
  location="/release/"><BR>> > 
  <section>Test</section><BR>> > 
  <subsearch>true</subsearch><BR>> > 
  </directory><BR>> > <directory 
  location="/RGLIntranet/"><BR>> > 
  <section>Test2</section><BR>> > 
  <subsearch>true</subsearch><BR>> > 
  </directory><BR>> > </directories><BR>> > 
  </luceneSearch><BR>> ><BR>> > Notice the section beginning 
  after the remark "Index binary documents".<BR>> ><BR>> > But I 
  cannot get any hits when searching for document names that are in<BR>> 
  the<BR>> > VFS. The other (HTML) searches are working ok. Is the "name" 
  property of<BR>> the<BR>> > fileType tag important? I wasn't sure 
  what to add here...I'm not quite<BR>> sure<BR>> > how to move 
  forward. Maybe it would be an idea to add some debugging trace<BR>> > to 
  the BodylessDocument class to see what is going on inside it? I want 
  to<BR>> > make sure my XML is correct first tho!<BR>> ><BR>> 
  > Thanks for the help,<BR>> > Ben<BR>> ><BR>> ><BR>> 
  > On Thu, 2003-10-16 at 22:46, Ben Rometsch wrote:<BR>> > > Hi 
  Matt,<BR>> > ><BR>> > > Thanks for the reply. If I just want 
  to get the document title to be<BR>> > > included in the Lucene 
  index, looking at the code in the<BR>> > > 
  net.grcomputing.opencms.search.BodylessDocument class it appears to<BR>> 
  ignore<BR>> > > what the CMSObject is, and attempt to index it 
  regardless. Is this<BR>> > correct?<BR>> > ><BR>> 
  ><BR>> > Correct. It will already index the title, but it will not 
  attempt to<BR>> > index the body.<BR>> ><BR>> > > If this 
  is the case, is it simply a matter of instructing Lucene to<BR>> 
  index<BR>> > > obects other than HTML files in the VFS  (i.e. 
  Documents) ? Or would I<BR>> > have<BR>> > > to create another 
  class, something like<BR>> > > 
  net.grcomputing.opencms.search.FileDocument and add a new hook into 
  that<BR>> > > class via the registry.xml fragment?  Or does the 
  BodyLess document<BR>> > provide<BR>> > > this functionality, 
  and it's just a matter of adding a new XML fragment<BR>> to<BR>> > 
  > the registry.xml are?<BR>> ><BR>> > Again, you are right -- 
  simply adding the appropriate configuration to<BR>> > the registry.xml 
  file will suffice. I believe that you will just need to<BR>> > extend 
  the plainDocument tag set to include extensions and processors...<BR>> > 
  I _think_ that binary files get handled by the plain handler.<BR>> 
  ><BR>> > Matt<BR>> ><BR>> > 
  _______________________________________________<BR>> > This mail is send 
  to you from the opencms-dev mailing list<BR>> > To change your list 
  options, or to unsubscribe from the list, please visit<BR>> > </FONT><A 
  href="http://mail.opencms.org/mailman/listinfo/opencms-dev"><FONT face=Arial 
  size=2>http://mail.opencms.org/mailman/listinfo/opencms-dev</FONT></A><BR><FONT 
  face=Arial size=2>> <BR>> Stephan Hartmann<BR>> Unternehmensberatung 
  Währisch & Feykes GmbH<BR>> Gustav-Adolf-Str. 5<BR>> 47057 
  Duisburg<BR>> <BR>> Tel.: 0203-373070<BR>> Fax: 0203-376766<BR>> 
  E-Mail: </FONT><A href="mailto:hartmann@wfnetz.de"><FONT face=Arial 
  size=2>hartmann@wfnetz.de</FONT></A><BR><FONT face=Arial size=2>> Internet: 
  </FONT><A href="http://www.wfnetz.de"><FONT face=Arial 
  size=2>www.wfnetz.de</FONT></A><BR><FONT face=Arial size=2>> <BR>> Über 
  das Internet versandte E-Mails können unter fremden Namen erstellt 
  oder<BR>> manipuliert werden. Aus diesem Grund enthalten unsere mit 
  E-Mail<BR>> verschickten Nachrichten grundsätzlich keine 
  rechtsverbindlichen<BR>> Willenserklärungen.<BR>> 
</FONT></BLOCKQUOTE></BODY></HTML>