begin process at 2008 08 07 22:19:05
1 223 148 membres
488 nouveaux aujourd'hui
14 227 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Lucene Au secours ! [ Divers / Général ] (alex1025)

Lucene Au secours ! le 31/01/2007 13:17:33

alex1025
Bonjour,

Je suis en train d'essayer depuis quelques jours d installer lucene 2.0 en Coldfusion

Je m 'en sort pas

Quelqu' un a t il deja reussi?


Voici l'erreur que je rencontre:



The selected method Keyword was not found.
Either there are no methods with the specified method name and argument types, or the method Keyword is overloaded with arguments types that ColdFusion can't decipher reliably. If this is a Java object and you verified that the method exists, you may need to use the javacast function to reduce ambiguity.
 
The error occurred in D:\*********\lucene\indexing_database2.cfm: line 29

 
29 :   <cfset d.add(fld.Keyword("url", urlpath))>
30 :   <cfset d.add(fld.Text("title", title))>
31 :   <cfset d.add(fld.UnIndexed("summary", content))>




Voici mon code CFM:



<cfset an = CreateObject("java", "org.apache.lucene.analysis.StopAnalyzer")>
<cfset an.init()>
<cfset writer = CreateObject("java", "org.apache.lucene.index.IndexWriter")>
<cfset writer.init("D:\********\lucene\index\", an, "true")>
<cfquery name="contentIndex" datasource="*******">
select id_article,author description
FROM test
</cfquery>


<cfloop query="contentIndex">
  <cfset d = CreateObject("java", "org.apache.lucene.document.Document")>
  <cfset fld = CreateObject("java", "org.apache.lucene.document.Field")>
  <cfset content = contentIndex.description>
  <cfset title = contentIndex.id_article>
  <cfset urlpath = "/products/detail.cfm?id=" & contentIndex.id_article>
 
  <cfset d.add(fld.Keyword("url", urlpath))>
  <cfset d.add(fld.Text("title", title))>
  <cfset d.add(fld.UnIndexed("summary", content))>
  <cfset d.add(fld.UnStored("body", content))>
 
  <cfset writer.addDocument(doc)>
</cfloop> 
<cfset writer.close()>






l'erreur vient car ce code marche pour l ancienne version de lucene mais pour la 2.0 non....
j arrive pas a la corriger.


Merci d'avance car Lucene a l'air tres bien.

Alex


Re : Lucene Au secours ! le 01/02/2007 22:28:39

nickadele
Membre Club
(Admin CS)
Bonjour,

Il me semble avoir déjà vu ce cas de figure sur la toile et cela disait de déplacer la création de l'objet field en dehors de la boucle mais je suis pas plus sûre que ça !

<cfset fld = CreateObject("java", "org.apache.lucene.document.Field")>
<cfloop query="contentIndex">
  <cfset d = CreateObject("java", "org.apache.lucene.document.Document")>
    <cfset content = contentIndex.description>
  <cfset title = contentIndex.id_article>
  <cfset urlpath = "/products/detail.cfm?id=" & contentIndex.id_article>
 
  <cfset d.add(fld.Keyword("url", urlpath))>
  <cfset d.add(fld.Text("title", title))>
  <cfset d.add(fld.UnIndexed("summary", content))>
  <cfset d.add(fld.UnStored("body", content))>
 
  <cfset writer.addDocument(doc)>
</cfloop>  

Tu fais : <cfset writer.addDocument(doc)>
Je ne vois nulle part dans ton code la création de l'instance doc
Ne faudrait-il pas écrire : <cfset writer.addDocument(d)>

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle

Re : Lucene Au secours ! le 01/02/2007 22:30:05

nickadele
Membre Club
(Admin CS)
Tu pourras peut-être avoir plus d'infos ici : [ Lien ]

Nickadele
----------------------------------------------
non, ma belle ne s'appel pas Adèle

Re : Lucene Au secours ! le 02/02/2007 10:53:19

alex1025
Coucou

Merci pour ta reponse mais en fait le probleme se situe sur

<cfset d.add(fld.Keyword("url", urlpath))>

il semble que keyword ne s utilise plus comme ca

j ai parcouru tous les forums du monde, les groups, les docs mais la je seche total.
sniffff

Re : Lucene Au secours ! le 28/02/2007 02:49:17

bastoun
Hello,
Bon j'arrive un peu après la bataille, mais sait-on jamais...
pour l'aide, il faut utiliser la doc de l'API lucene (que tu trouves sur lucene.apache.org)

voilà ce que ça peut donner (pour lucene 2.1)

<cfset an = CreateObject("java", "org.apache.lucene.analysis.standard.StandardAnalyzer")>
<cfset an.init()>

<cfset writer = CreateObject("java", "org.apache.lucene.index.IndexWriter")>
<cfset writer.init("C:\mycflucene\index", an, "true")>

<cfdirectory action = "list" directory = "C:\mesdocs" name = "contentIndex" recurse="no">

<cfset store = CreateObject("java", "org.apache.lucene.document.Field$Store")>
<cfset index = CreateObject("java", "org.apache.lucene.document.Field$Index")>

<cfoutput query="contentIndex" maxrows="5">
  <cfset d = CreateObject("java", "org.apache.lucene.document.Document")>
 
 
  <cffile action="read" file="#contentIndex.directory#\#contentIndex.name#" variable="myfile">

  <cfset content = myfile>
  <cfset title = contentIndex.name>
  <cfset urlpath = "detail.cfm?id=#contentIndex.name#">

  <cfset fld1 = CreateObject("java", "org.apache.lucene.document.Field")>
  <cfset d.add(fld1.init("url", "#urlpath#", store.YES, index.NO_NORMS))>
 
  <cfset fld2 = CreateObject("java", "org.apache.lucene.document.Field")>
  <cfset d.add(fld2.init("body", "#content#", store.NO, index.TOKENIZED))>

  <cfset writer.addDocument(d)>
</cfoutput>
<cfset writer.close()>


Classé sous : secours, erreur, method, lucene, keyword

Participer à cet échange

Pub



Appels d'offres

Snippets en rapport

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS