You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Robert Muir <rc...@gmail.com> on 2010/10/15 18:19:39 UTC

Re: svn commit: r1022989 - in /lucene/dev/trunk/solr/src/test: org/apache/solr/core/AlternateDirectoryTest.java test-files/solr/conf/solrconfig-altdirectory.xml

Yonik, thanks for hammering away at these tests!

Curious, were you planning on merging all your test improvements to
3.x? If you dont have the time, let me know and I could help.

On Fri, Oct 15, 2010 at 12:08 PM,  <yo...@apache.org> wrote:
> Author: yonik
> Date: Fri Oct 15 16:08:01 2010
> New Revision: 1022989
>
> URL: http://svn.apache.org/viewvc?rev=1022989&view=rev
> Log:
> tests: simplify test, use minimal config
>
> Modified:
>    lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java
>    lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml
>
> Modified: lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java
> URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java?rev=1022989&r1=1022988&r2=1022989&view=diff
> ==============================================================================
> --- lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java (original)
> +++ lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java Fri Oct 15 16:08:01 2010
> @@ -19,16 +19,14 @@ package org.apache.solr.core;
>  import java.io.File;
>  import java.io.IOException;
>  import org.apache.lucene.store.FSDirectory;
> -import org.apache.solr.util.AbstractSolrTestCase;
> -
> -public class AlternateDirectoryTest extends AbstractSolrTestCase {
> -
> -  public String getSchemaFile() {
> -    return "schema.xml";
> -  }
> -
> -  public String getSolrConfigFile() {
> -    return "solrconfig-altdirectory.xml";
> +import org.apache.solr.SolrTestCaseJ4;
> +import org.junit.BeforeClass;
> +import org.junit.Test;
> +
> +public class AlternateDirectoryTest extends SolrTestCaseJ4 {
> +  @BeforeClass
> +  public static void beforeClass() throws Exception {
> +    initCore("solrconfig-altdirectory.xml", "schema.xml");
>   }
>
>   /**
> @@ -36,12 +34,14 @@ public class AlternateDirectoryTest exte
>    *
>    * @throws Exception
>    */
> +  @Test
>   public void testAltDirectoryUsed() throws Exception {
> +    assertQ(req("q","*:*","qt","standard"));
>     assertTrue(TestFSDirectoryFactory.openCalled);
>   }
>
>   static public class TestFSDirectoryFactory extends DirectoryFactory {
> -    public static boolean openCalled = false;
> +    public static volatile boolean openCalled = false;
>
>     public FSDirectory open(String path) throws IOException {
>       openCalled = true;
>
> Modified: lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml
> URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml?rev=1022989&r1=1022988&r2=1022989&view=diff
> ==============================================================================
> --- lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml (original)
> +++ lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml Fri Oct 15 16:08:01 2010
> @@ -23,382 +23,6 @@
>   -->
>
>  <config>
> -
> -  <jmx />
> -
> -  <!-- Used to specify an alternate directory to hold all index data.
> -       It defaults to "index" if not present, and should probably
> -       not be changed if replication is in use. -->
> -  <dataDir>${solr.data.dir:./solr/data}</dataDir>
> -
> -  <indexDefaults>
> -   <!-- Values here affect all index writers and act as a default
> -   unless overridden. -->
> -    <!-- Values here affect all index writers and act as a default unless overridden. -->
> -    <useCompoundFile>false</useCompoundFile>
> -    <mergeFactor>10</mergeFactor>
> -    <!-- If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will flush based on whichever limit is hit first.
> -     -->
> -    <!--<maxBufferedDocs>1000</maxBufferedDocs>-->
> -    <!-- Tell Lucene when to flush documents to disk.
> -    Giving Lucene more memory for indexing means faster indexing at the cost of more RAM
> -
> -    If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will flush based on whichever limit is hit first.
> -
> -    -->
> -    <ramBufferSizeMB>32</ramBufferSizeMB>
> -    <maxMergeDocs>2147483647</maxMergeDocs>
> -    <maxFieldLength>10000</maxFieldLength>
> -    <writeLockTimeout>1000</writeLockTimeout>
> -    <commitLockTimeout>10000</commitLockTimeout>
> -
> -    <!--
> -     Expert:
> -     The Merge Policy in Lucene controls how merging is handled by Lucene.  The default in 2.3 is the LogByteSizeMergePolicy, previous
> -     versions used LogDocMergePolicy.
> -
> -     LogByteSizeMergePolicy chooses segments to merge based on their size.  The Lucene 2.2 default, LogDocMergePolicy chose when
> -     to merge based on number of documents
> -
> -     Other implementations of MergePolicy must have a no-argument constructor
> -     -->
> -    <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/>
> -
> -    <!--
> -     Expert:
> -     The Merge Scheduler in Lucene controls how merges are performed.  The ConcurrentMergeScheduler (Lucene 2.3 default)
> -      can perform merges in the background using separate threads.  The SerialMergeScheduler (Lucene 2.2 default) does not.
> -     -->
> -    <mergeScheduler class="org.apache.lucene.index.ConcurrentMergeScheduler"/>
> -    <!-- these are global... can't currently override per index -->
> -    <writeLockTimeout>1000</writeLockTimeout>
> -    <commitLockTimeout>10000</commitLockTimeout>
> -
> -    <lockType>single</lockType>
> -  </indexDefaults>
> -
> -  <mainIndex>
> -    <!-- lucene options specific to the main on-disk lucene index -->
> -    <useCompoundFile>false</useCompoundFile>
> -    <mergeFactor>10</mergeFactor>
> -    <ramBufferSizeMB>32</ramBufferSizeMB>
> -    <maxMergeDocs>2147483647</maxMergeDocs>
> -    <maxFieldLength>10000</maxFieldLength>
> -
> -    <unlockOnStartup>true</unlockOnStartup>
> -  </mainIndex>
> -
> -  <updateHandler class="solr.DirectUpdateHandler2">
> -
> -    <!-- autocommit pending docs if certain criteria are met
> -    <autoCommit>
> -      <maxDocs>10000</maxDocs>
> -      <maxTime>3600000</maxTime>
> -    </autoCommit>
> -    -->
> -    <!-- represents a lower bound on the frequency that commits may
> -    occur (in seconds). NOTE: not yet implemented
> -
> -    <commitIntervalLowerBound>0</commitIntervalLowerBound>
> -    -->
> -
> -    <!-- The RunExecutableListener executes an external command.
> -         exe - the name of the executable to run
> -         dir - dir to use as the current working directory. default="."
> -         wait - the calling thread waits until the executable returns. default="true"
> -         args - the arguments to pass to the program.  default=nothing
> -         env - environment variables to set.  default=nothing
> -      -->
> -    <!-- A postCommit event is fired after every commit
> -    <listener event="postCommit" class="solr.RunExecutableListener">
> -      <str name="exe">/var/opt/resin3/__PORT__/scripts/solr/snapshooter</str>
> -      <str name="dir">/var/opt/resin3/__PORT__</str>
> -      <bool name="wait">true</bool>
> -      <arr name="args"> <str>arg1</str> <str>arg2</str> </arr>
> -      <arr name="env"> <str>MYVAR=val1</str> </arr>
> -    </listener>
> -    -->
> -
> -
> -  </updateHandler>
> -
> -  <directoryFactory name="DirectoryFactory" class="org.apache.solr.core.AlternateDirectoryTest$TestFSDirectoryFactory">
> -    <!-- Parameters as required by the implementation -->
> -  </directoryFactory>
> -
> -
> -  <indexReaderFactory name="IndexReaderFactory" class="org.apache.solr.core.AlternateIndexReaderTest$TestIndexReaderFactory">
> -    <!-- Parameters as required by the implementation -->
> -  </indexReaderFactory >
> -
> -  <query>
> -    <!-- Maximum number of clauses in a boolean query... can affect
> -        range or wildcard queries that expand to big boolean
> -        queries.  An exception is thrown if exceeded.
> -    -->
> -    <maxBooleanClauses>1024</maxBooleanClauses>
> -
> -
> -    <!-- Cache specification for Filters or DocSets - unordered set of *all* documents
> -         that match a particular query.
> -      -->
> -    <filterCache
> -      class="solr.search.LRUCache"
> -      size="512"
> -      initialSize="512"
> -      autowarmCount="256"/>
> -
> -    <queryResultCache
> -      class="solr.search.LRUCache"
> -      size="512"
> -      initialSize="512"
> -      autowarmCount="1024"/>
> -
> -    <documentCache
> -      class="solr.search.LRUCache"
> -      size="512"
> -      initialSize="512"
> -      autowarmCount="0"/>
> -
> -    <!-- If true, stored fields that are not requested will be loaded lazily.
> -    -->
> -    <enableLazyFieldLoading>true</enableLazyFieldLoading>
> -
> -    <!--
> -
> -    <cache name="myUserCache"
> -      class="solr.search.LRUCache"
> -      size="4096"
> -      initialSize="1024"
> -      autowarmCount="1024"
> -      regenerator="MyRegenerator"
> -      />
> -    -->
> -
> -
> -    <useFilterForSortedQuery>true</useFilterForSortedQuery>
> -
> -    <queryResultWindowSize>10</queryResultWindowSize>
> -
> -    <!-- set maxSize artificially low to exercise both types of sets -->
> -    <HashDocSet maxSize="3" loadFactor="0.75"/>
> -
> -
> -    <!-- boolToFilterOptimizer converts boolean clauses with zero boost
> -         into cached filters if the number of docs selected by the clause exceeds
> -         the threshold (represented as a fraction of the total index)
> -    -->
> -    <boolTofilterOptimizer enabled="false" cacheSize="32" threshold=".05"/>
> -
> -
> -    <!-- a newSearcher event is fired whenever a new searcher is being prepared
> -         and there is a current searcher handling requests (aka registered). -->
> -    <!-- QuerySenderListener takes an array of NamedList and executes a
> -         local query request for each NamedList in sequence. -->
> -    <!--
> -    <listener event="newSearcher" class="solr.QuerySenderListener">
> -      <arr name="queries">
> -        <lst> <str name="q">solr</str> <str name="start">0</str> <str name="rows">10</str> </lst>
> -        <lst> <str name="q">rocks</str> <str name="start">0</str> <str name="rows">10</str> </lst>
> -      </arr>
> -    </listener>
> -    -->
> -
> -    <!-- a firstSearcher event is fired whenever a new searcher is being
> -         prepared but there is no current registered searcher to handle
> -         requests or to gain prewarming data from. -->
> -    <!--
> -    <listener event="firstSearcher" class="solr.QuerySenderListener">
> -      <arr name="queries">
> -        <lst> <str name="q">fast_warm</str> <str name="start">0</str> <str name="rows">10</str> </lst>
> -      </arr>
> -    </listener>
> -    -->
> -
> -
> -  </query>
> -
> -
> -  <!-- An alternate set representation that uses an integer hash to store filters (sets of docids).
> -       If the set cardinality <= maxSize elements, then HashDocSet will be used instead of the bitset
> -       based HashBitset. -->
> -
> -  <!-- requestHandler plugins... incoming queries will be dispatched to the
> -     correct handler based on the qt (query type) param matching the
> -     name of registered handlers.
> -      The "standard" request handler is the default and will be used if qt
> -     is not specified in the request.
> -  -->
> -  <requestHandler name="standard" class="solr.StandardRequestHandler">
> -       <bool name="httpCaching">true</bool>
> -  </requestHandler>
> -  <requestHandler name="dismaxOldStyleDefaults"
> -                  class="solr.DisMaxRequestHandler" >
> -     <!-- for historic reasons, DisMaxRequestHandler will use all of
> -          it's init params as "defaults" if there is no "defaults" list
> -          specified
> -     -->
> -     <float name="tie">0.01</float>
> -     <str name="qf">
> -        text^0.5 features_t^1.0 subject^1.4 title_stemmed^2.0
> -     </str>
> -     <str name="pf">
> -        text^0.2 features_t^1.1 subject^1.4 title_stemmed^2.0 title^1.5
> -     </str>
> -     <str name="bf">
> -        ord(weight)^0.5 recip(rord(iind),1,1000,1000)^0.3
> -     </str>
> -     <str name="mm">
> -        3&lt;-1 5&lt;-2 6&lt;90%
> -     </str>
> -     <int name="ps">100</int>
> -  </requestHandler>
> -  <requestHandler name="dismax" class="solr.DisMaxRequestHandler" >
> -    <lst name="defaults">
> -     <str name="q.alt">*:*</str>
> -     <float name="tie">0.01</float>
> -     <str name="qf">
> -        text^0.5 features_t^1.0 subject^1.4 title_stemmed^2.0
> -     </str>
> -     <str name="pf">
> -        text^0.2 features_t^1.1 subject^1.4 title_stemmed^2.0 title^1.5
> -     </str>
> -     <str name="bf">
> -        ord(weight)^0.5 recip(rord(iind),1,1000,1000)^0.3
> -     </str>
> -     <str name="mm">
> -        3&lt;-1 5&lt;-2 6&lt;90%
> -     </str>
> -     <int name="ps">100</int>
> -    </lst>
> -  </requestHandler>
> -  <requestHandler name="old" class="solr.tst.OldRequestHandler" >
> -    <int name="myparam">1000</int>
> -    <float name="ratio">1.4142135</float>
> -    <arr name="myarr"><int>1</int><int>2</int></arr>
> -    <str>foo</str>
> -  </requestHandler>
> -  <requestHandler name="oldagain" class="solr.tst.OldRequestHandler" >
> -    <lst name="lst1"> <str name="op">sqrt</str> <int name="val">2</int> </lst>
> -    <lst name="lst2"> <str name="op">log</str> <float name="val">10</float> </lst>
> -  </requestHandler>
> -
> -  <requestHandler name="test" class="solr.tst.TestRequestHandler" />
> -
> -  <!-- test query parameter defaults -->
> -  <requestHandler name="defaults" class="solr.StandardRequestHandler">
> -    <lst name="defaults">
> -      <int name="rows">4</int>
> -      <bool name="hl">true</bool>
> -      <str name="hl.fl">text,name,subject,title,whitetok</str>
> -    </lst>
> -  </requestHandler>
> -
> -  <!-- test query parameter defaults -->
> -  <requestHandler name="lazy" class="solr.StandardRequestHandler" startup="lazy">
> -    <lst name="defaults">
> -      <int name="rows">4</int>
> -      <bool name="hl">true</bool>
> -      <str name="hl.fl">text,name,subject,title,whitetok</str>
> -    </lst>
> -  </requestHandler>
> -
> -  <requestHandler name="/update"     class="solr.XmlUpdateRequestHandler"          />
> -  <requestHandler name="/update/csv" class="solr.CSVRequestHandler" startup="lazy">
> -       <bool name="httpCaching">false</bool>
> -  </requestHandler>
> -
> -  <searchComponent name="spellcheck" class="org.apache.solr.handler.component.SpellCheckComponent">
> -    <str name="queryAnalyzerFieldType">lowerfilt</str>
> -
> -    <lst name="spellchecker">
> -      <str name="name">default</str>
> -      <str name="field">lowerfilt</str>
> -      <str name="spellcheckIndexDir">spellchecker1</str>
> -      <str name="buildOnCommit">true</str>
> -    </lst>
> -    <!-- Example of using different distance measure -->
> -    <lst name="spellchecker">
> -      <str name="name">jarowinkler</str>
> -      <str name="field">lowerfilt</str>
> -      <!-- Use a different Distance Measure -->
> -      <str name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str>
> -      <str name="spellcheckIndexDir">spellchecker2</str>
> -
> -    </lst>
> -    <lst name="spellchecker">
> -      <str name="classname">solr.FileBasedSpellChecker</str>
> -      <str name="name">external</str>
> -      <str name="sourceLocation">spellings.txt</str>
> -      <str name="characterEncoding">UTF-8</str>
> -      <str name="spellcheckIndexDir">spellchecker3</str>
> -    </lst>
> -  </searchComponent>
> -  <!--
> -  The SpellingQueryConverter to convert raw (CommonParams.Q) queries into tokens.  Uses a simple regular expression
> -   to strip off field markup, boosts, ranges, etc. but it is not guaranteed to match an exact parse from the query parser.
> -   -->
> -  <queryConverter name="queryConverter" class="org.apache.solr.spelling.SpellingQueryConverter"/>
> -
> -  <requestHandler name="spellCheckCompRH" class="org.apache.solr.handler.component.SearchHandler">
> -    <lst name="defaults">
> -      <!-- omp = Only More Popular -->
> -      <str name="spellcheck.onlyMorePopular">false</str>
> -      <!-- exr = Extended Results -->
> -      <str name="spellcheck.extendedResults">false</str>
> -      <!--  The number of suggestions to return -->
> -      <str name="spellcheck.count">1</str>
> -    </lst>
> -    <arr name="last-components">
> -      <str>spellcheck</str>
> -    </arr>
> -  </requestHandler>
> -
> -  <searchComponent class="solr.HighlightComponent" name="highlight">
> -  <highlighting>
> -   <!-- Configure the standard fragmenter -->
> -   <fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter" default="true">
> -    <lst name="defaults">
> -     <int name="hl.fragsize">100</int>
> -    </lst>
> -   </fragmenter>
> -
> -   <fragmenter name="regex" class="org.apache.solr.highlight.RegexFragmenter">
> -    <lst name="defaults">
> -     <int name="hl.fragsize">70</int>
> -    </lst>
> -   </fragmenter>
> -
> -   <!-- Configure the standard formatter -->
> -   <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter" default="true">
> -    <lst name="defaults">
> -     <str name="hl.simple.pre"><![CDATA[<em>]]></str>
> -     <str name="hl.simple.post"><![CDATA[</em>]]></str>
> -    </lst>
> -   </formatter>
> -  </highlighting>
> -  </searchComponent>
> -
> -
> -  <!-- enable streaming for testing... -->
> -  <requestDispatcher handleSelect="true" >
> -    <requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
> -    <httpCaching lastModifiedFrom="openTime" etagSeed="Solr" never304="false">
> -      <cacheControl>max-age=30, public</cacheControl>
> -    </httpCaching>
> -  </requestDispatcher>
> -
> -  <admin>
> -    <defaultQuery>solr</defaultQuery>
> -    <gettableFiles>solrconfig.xml scheam.xml admin-extra.html</gettableFiles>
> -  </admin>
> -
> -  <!-- test getting system property -->
> -  <propTest attr1="${solr.test.sys.prop1}-$${literal}"
> -            attr2="${non.existent.sys.prop:default-from-config}">prefix-${solr.test.sys.prop2}-suffix</propTest>
> -
> -  <queryParser name="foo" class="FooQParserPlugin"/>
> -
> -
> -
> +  <requestHandler name="standard" class="solr.StandardRequestHandler"></requestHandler>
> +  <directoryFactory name="DirectoryFactory" class="org.apache.solr.core.AlternateDirectoryTest$TestFSDirectoryFactory"></directoryFactory>
>  </config>
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Re: svn commit: r1022989 - in /lucene/dev/trunk/solr/src/test: org/apache/solr/core/AlternateDirectoryTest.java test-files/solr/conf/solrconfig-altdirectory.xml

Posted by Yonik Seeley <yo...@lucidimagination.com>.
-Yonik
http://www.lucidimagination.com



On Fri, Oct 15, 2010 at 12:41 PM, Robert Muir <rc...@gmail.com> wrote:
> On Fri, Oct 15, 2010 at 12:38 PM, Yonik Seeley
> <yo...@lucidimagination.com> wrote:
>> Hmmm, I hadn't realized that we had switched to non-forking for 3x too.
>> I guess all that should be backported.  Help getting synced would
>> definitely be appreciated, and I'll try to be better at merging
>> quickly in the future!
>>
>
> OK, i'll help merge some stuff (at least whats easy).
>
> Though for this one... hudson might have found a problem?
>
> https://hudson.apache.org/hudson/job/Lucene-Solr-tests-only-trunk/112/testReport/junit/org.apache.solr.core/AlternateIndexReaderTest/testAltReaderUsed/

Ahhh, more than one test used solrconfig-altdirectory.xml

I think I'll just try and consolidate those two tests.

-Yonik
http://www.lucidimagination.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Re: svn commit: r1022989 - in /lucene/dev/trunk/solr/src/test: org/apache/solr/core/AlternateDirectoryTest.java test-files/solr/conf/solrconfig-altdirectory.xml

Posted by Robert Muir <rc...@gmail.com>.
On Fri, Oct 15, 2010 at 12:38 PM, Yonik Seeley
<yo...@lucidimagination.com> wrote:
> Hmmm, I hadn't realized that we had switched to non-forking for 3x too.
> I guess all that should be backported.  Help getting synced would
> definitely be appreciated, and I'll try to be better at merging
> quickly in the future!
>

OK, i'll help merge some stuff (at least whats easy).

Though for this one... hudson might have found a problem?

https://hudson.apache.org/hudson/job/Lucene-Solr-tests-only-trunk/112/testReport/junit/org.apache.solr.core/AlternateIndexReaderTest/testAltReaderUsed/

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Re: svn commit: r1022989 - in /lucene/dev/trunk/solr/src/test: org/apache/solr/core/AlternateDirectoryTest.java test-files/solr/conf/solrconfig-altdirectory.xml

Posted by Yonik Seeley <yo...@lucidimagination.com>.
On Fri, Oct 15, 2010 at 12:19 PM, Robert Muir <rc...@gmail.com> wrote:
> Yonik, thanks for hammering away at these tests!
>
> Curious, were you planning on merging all your test improvements to
> 3.x? If you dont have the time, let me know and I could help.

Hmmm, I hadn't realized that we had switched to non-forking for 3x too.
I guess all that should be backported.  Help getting synced would
definitely be appreciated, and I'll try to be better at merging
quickly in the future!

-Yonik
http://www.lucidimagination.com

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org