Hi Dmitry,<br><br><div class="gmail_quote">On Wed, Oct 13, 2010 at 11:11 PM, Dmitry Demeshchuk <span dir="ltr"><<a href="mailto:demeshchuk@gmail.com">demeshchuk@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Greetings.<br>
<br>
I have a couple of questions regarding the analyzers, mainly the Java ones.<br>
<br>
1. Which platform is preferable for use: OpenJDK or Sun's Java? Say, I<br>
won't have any uses for JVM so it will be used just for analyzers.<br></blockquote><div><br></div><div>We have not seen any appreciable difference between the platforms, either one should be fine. Search isn't relying on the JVM to do anything overly complicated.</div>
<div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
2. Could you please give a brief description of the difference between<br>
the analyzers?<br></blockquote><div><br></div><div>Sure:</div><div><br></div><div><b>com.basho.search.analysis.DefaultAnalyzerFactory</b> uses Lucene's StandardTokenizer, filters out words less than 3 characters, converts tokens to lower case, and filters out the stopwords listed in Lucene's StopAnalyzer.java (<a href="http://www.koders.com/java/fid5FBD7DCAFB544D74598A9B1D82A341CD648DA47F.aspx?s=java">http://www.koders.com/java/fid5FBD7DCAFB544D74598A9B1D82A341CD648DA47F.aspx?s=java</a>)</div>
<div><br></div><div><b>com.basho.search.analysis.WhitespaceAnalyzerFactory</b> uses Lucene's Whitespace tokenizer.</div><div><br></div><div><b>com.basho.search.analysis.IntegerAnalyzerFactory </b>parses the field as integers and by default pads to 10 places.</div>
<div><br></div><div><b>{erlang, text_analyzers, default_analyzer_factory} </b>parses words as having characters 0-9, a-z, or A-Z, filters out words less than 3 characters, converts tokens to lower case, and filters out the same list of stopwords as DefaultAnalyzerFactory.</div>
<div><br></div><div>Two things to note:</div><div>- You can create your own analyzers in Java or Erlang, see the source code under apps/qilr/java_src</div><div>- Due to a regression bug, field-level analyzer settings are not used when running a query. Whatever default analyzer you set for the schema is used for all fields. </div>
<div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
3. I guess you have already made some benchmarks regarding the<br>
analyzers, haven't you?<br></blockquote><div><br></div><div><br></div><div>We have made some rudimentary benchmarks which shows that Erlang analyzers are currently faster than Java-based analyzers due to the communication overhead. We will be working on this in future iterations.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I remember that you are going to add a special page into wiki about<br>
the subject. Hope this will also help you to gather up the information<br>
a bit.<br></blockquote><div><br></div><div>Absolutely, we will continue to update the wiki with more information about Search going forward.</div><div><br></div><div>Hope that helps!</div><div><br></div><div>Best,</div><div>
Rusty</div></div>