Jakub Godawa wrote:
Am I not doing it in the point no 4? I am compiling all the folder that was extracted before, but now with that new class file.2010/11/12 Lance Norskog<goks...@gmail.com>:I think you have to compile all of the stempel source including your filter factory into one jar at the same time. Everybody does this; I don't know how different Java versions make class file binaries. On Thu, Nov 11, 2010 at 3:06 AM, Jakub Godawa<jakub.god...@gmail.com> wrote:Hi! Sorry for such a break, but I was moving house... anyway: 1. I took the ~/apache-solr/src/java/org/apache/solr/analysis/StandardFilterFactory.java file and modified it (named as StempelFilterFactory.java) in Vim that way: package org.getopt.solr.analysis; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.standard.StandardFilter; public class StempelTokenFilterFactory extends BaseTokenFilterFactory { public StempelFilter create(TokenStream input) { return new StempelFilter(input); } } 2. Then I put the file to the extracted stempel-1.0.jar in ./org/getopt/solr/analysis/ 3. Then I created a class from it: jar -cf StempelTokenFilterFactory.class StempelFilterFactory.java 4. Then I created new stempel-1.0.jar archive: jar -cf stempel-1.0.jar -C ./stempel-1.0/ . 5. Then in schema.xml I've put: <fieldType name="text_pl" class="solr.TextField"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="org.getopt.solr.analysis.StempelTokenFilterFactory" /> </analyzer> </fieldType> 6. I started the solr server and I recieved the following error: 2010-11-11 11:50:56 org.apache.solr.common.SolrException log SEVERE: java.lang.ClassFormatError: Incompatible magic value 1347093252 in class file org/getopt/solr/analysis/StempelTokenFilterFactory at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) ... Question: What is wrong? :) I use "jar (fastjar) 0.98" to create jars, I googled on that error but with no answer gave me idea what is wrong in my .java file. Please help, as I believe I am close to the end of that subject. Cheers, Jakub Godawa. 2010/11/3 Lance Norskog<goks...@gmail.com>:Here's the problem: Solr is a little dumb about these Filter classes, and so you have to make a Factory object for the Stempel Filter. There are a lot of other FilterFactory classes. You would have to just copy one and change the names to Stempel and it might actually work. This will take some Solr programming- perhaps the author can help you? On Tue, Nov 2, 2010 at 7:08 AM, Jakub Godawa<jakub.god...@gmail.com> wrote:Sorry, I am not Java programmer at all. I would appreciate more verbose (or step by step) help. 2010/11/2 Bernd Fehling<bernd.fehl...@uni-bielefeld.de>:So you call org.getopt.solr.analysis.StempelTokenFilterFactory. In this case I would assume a file StempelTokenFilterFactory.class in your directory org/getopt/solr/analysis/. And a class which extends the BaseTokenFilterFactory rigth? ... public class StempelTokenFilterFactory extends BaseTokenFilterFactory implements ResourceLoaderAware { ... Am 02.11.2010 14:20, schrieb Jakub Godawa:This is what stempel-1.0.jar consist of after jar -xf: jgod...@ubuntu:~/apache-solr-1.4.1/ifaq/lib$ ls -R org/ org/: egothor getopt org/egothor: stemmer org/egothor/stemmer: Cell.class Diff.class Gener.class MultiTrie2.class Optimizer2.class Reduce.class Row.class TestAll.class TestLoad.class Trie$StrEnum.class Compile.class DiffIt.class Lift.class MultiTrie.class Optimizer.class Reduce$Remap.class Stock.class Test.class Trie.class org/getopt: stempel org/getopt/stempel: Benchmark.class lucene Stemmer.class org/getopt/stempel/lucene: StempelAnalyzer.class StempelFilter.class jgod...@ubuntu:~/apache-solr-1.4.1/ifaq/lib$ ls -R META-INF/ META-INF/: MANIFEST.MF jgod...@ubuntu:~/apache-solr-1.4.1/ifaq/lib$ ls -R res res: tables res/tables: readme.txt stemmer_1000.out stemmer_100.out stemmer_2000.out stemmer_200.out stemmer_500.out stemmer_700.out 2010/11/2 Bernd Fehling<bernd.fehl...@uni-bielefeld.de>:Hi Jakub, if you unzip your stempel-1.0.jar do you have the required directory structure and file in there? org/getopt/stempel/lucene/StempelFilter.class Regards, Bernd Am 02.11.2010 13:54, schrieb Jakub Godawa:Erick I've put the jar files like that before. I also added the directive and put the file in instanceDir/lib What is still a problem is that even the files are loaded: 2010-11-02 13:20:48 org.apache.solr.core.SolrResourceLoader replaceClassLoader INFO: Adding 'file:/home/jgodawa/apache-solr-1.4.1/ifaq/lib/stempel-1.0.jar' to classloader I am not able to use the FilterFactory... maybe I am attempting it in a wrong way? Cheers, Jakub Godawa. 2010/11/2 Erick Erickson<erickerick...@gmail.com>:The polish stemmer jar file needs to be findable by Solr, if you copy it to<solr_home>/lib and restart solr you should be set. Alternatively, you can add another<lib> directive to the solrconfig.xml file (there are several examples in that file already). I'm a little confused about not being able to find TokenFilter, is that still a problem? HTH Erick On Tue, Nov 2, 2010 at 8:07 AM, Jakub Godawa<jakub.god...@gmail.com> wrote:Thank you Bernd! I couldn't make it run though. Here is my problem: 1. There is a file ~/apache-solr-1.4.1/ifaq/lib/stempel-1.0.jar 2. In ~/apache-solr-1.4.1/ifaq/solr/conf/solrconfig.xml there is a directive:<lib path="../lib/stempel-1.0.jar" /> 3. In ~/apache-solr-1.4.1/ifaq/solr/conf/schema.xml there is fieldType: (...) <!-- Polish --> <fieldType name="text_pl" class="solr.TextField"> <analyzer> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="org.getopt.stempel.lucene.StempelFilter" /> <!--<filter class="org.getopt.solr.analysis.StempelTokenFilterFactory" protected="protwords.txt" /> --> </analyzer> </fieldType> (...) 4. jar file is loaded but I got an error: SEVERE: Could not start SOLR. Check solr/home property java.lang.NoClassDefFoundError: org/apache/lucene/analysis/TokenFilter at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:634) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) (...) 5. Different class gave me that one: SEVERE: org.apache.solr.common.SolrException: Error loading class 'org.getopt.solr.analysis.StempelTokenFilterFactory' at org.apache.solr.core.SolrResourceLoader.findClass(SolrResourceLoader.java:375) at org.apache.solr.core.SolrResourceLoader.newInstance(SolrResourceLoader.java:390) (...) Question is: How to make<fieldType /> and<filter /> work with that Stempel? :) Cheers, Jakub Godawa. 2010/10/29 Bernd Fehling<bernd.fehl...@uni-bielefeld.de>:Hi Jakub, I have ported the KStemmer for use in most recent Solr trunk version. My stemmer is located in the lib directory of Solr"solr/lib/KStemmer-2.00.jar"because it belongs to Solr. Write it as FilterFactory and use it as Filter like: <filter class="de.ubbielefeld.solr.analysis.KStemFilterFactory"protected="protwords.txt" />This is how my fieldType looks like: <fieldType name="text_kstem" class="solr.TextField"positionIncrementGap="100"><analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true"words="stopwords.txt" enablePositionIncrements="false" /><filter class="solr.WordDelimiterFilterFactory"generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1"catenateAll="0" splitOnCaseChange="1" /> <filter class="solr.LowerCaseFilterFactory" /> <filter class="de.ubbielefeld.solr.analysis.KStemFilterFactory"protected="protwords.txt" /><filter class="solr.RemoveDuplicatesTokenFilterFactory" /> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory" /> <filter class="solr.StopFilterFactory" ignoreCase="true"words="stopwords.txt" /><filter class="solr.WordDelimiterFilterFactory"generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0"catenateAll="0" splitOnCaseChange="1" /> <filter class="solr.LowerCaseFilterFactory" /> <filter class="de.ubbielefeld.solr.analysis.KStemFilterFactory"protected="protwords.txt" /><filter class="solr.RemoveDuplicatesTokenFilterFactory" /> </analyzer> </fieldType> Regards, Bernd Am 28.10.2010 14:56, schrieb Jakub Godawa:Hi! There is a polish stemmer http://www.getopt.org/stempel/ and I have problems connecting it with solr 1.4.1 Questions: 1. Where EXACTLY do I put "stemper-1.0.jar" file? 2. How do I register the file, so I can build a fieldType like: <fieldType name="text_pl" class="solr.TextField"> <analyzer class="org.geoopt.solr.analysis.StempelTokenFilterFactory"/> </fieldType> 3. Is that the right approach to make it work? Thanks for verbose explanation, Jakub.-- Lance Norskog goks...@gmail.com-- Lance Norskog goks...@gmail.com