Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Solr 4 #27

Closed
nilskassube opened this issue Sep 1, 2012 · 27 comments
Closed

Support for Solr 4 #27

nilskassube opened this issue Sep 1, 2012 · 27 comments

Comments

@nilskassube
Copy link

E.g. the path for update is now update/ and not update/json.

@lbdremy
Copy link
Owner

lbdremy commented Sep 1, 2012

Hello @nilskassube ,

You're right, now this client doesn't support Solr 4.

If I run npm test against a Solr 4 instance I get

lbdremy@lbdremy-Latitude-E6500:~/workspace/nodejs/solr-client$ npm test

> solr-client@0.2.1 test /home/lbdremy/workspace/nodejs/solr-client
> vows --spec test/test-*


  ♢ Solr Date 

  Date submitted by the user being based on Local time.
    ✓ should return a Date following this pattern 1995-12-31T23:59:59.999Z and based on UTC time

  ♢ Solr Client API Core 

  The creation of a Solr Client with no options
    ✓ should return a Client
  The creation of a Solr Client with custom options
    ✓ should return a Client
  The creation of a Solr Client with custom host
    ✓ should return a Client
  The creation of a Solr Client with custom host, post, core and path
    ✓ should return a Client
  Adding one document to the Solr DB
    ✗ should be possible. 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Adding a list of documents
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Adding one document using unknown fields
    ✓ should return an SolrError
  Committing automatically
    ✓ should be possible
  Committing manually
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Deleting documents matching a query
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Deleting a document where a field matchs a value
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Deleting a document by ID
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Deleting a range of documents
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Optimizing the Solr Database
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Updating the Solr Database with any object
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Rolling back all documents added or deleted to the index since the last commit
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Ping the Solr server
    ✓ should be possible
  Make a query that will be handle by DefaultRequestHandler
    ✓ should be possible
  Make a query that will be handle by the RequestHandler given in parameter
    ✓ should be possible
  Make a query that will be handle by DisMaxParserPlugin
    ✓ should be possible
  Make a query that return only a set of fields specified
    ✓ should be possible
  Make a query that return a result within an expected timeout
    ✓ should be possible
  Make a query that autoconvert JS Date Object into a properly date format expected by Solr
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":9,"params":{"start":"0","q":"laptop","qf":"title^2 description^3","wt":"json","fq":"(last_update:[2012-05-05T21:50:08.783Z TO 2012-05-06T21:50:08.783Z] AND price:[10 TO 100])","defType":"dismax","rows":"10"}},"error":{"msg":"undefined field: \\"last_update\\"","code":400}}\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:513:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":9,"params":{"start":"0","q":"laptop","qf":"title^2 description^3","wt":"json","fq":"(last_update:[2012-05-05T21:50:08.783Z TO 2012-05-06T21:50:08.783Z] AND price:[10 TO 100])","defType":"dismax","rows":"10"}},"error":{"msg":"undefined field: \\"last_update\\"","code":400}}' } // solr.js:513
  Make a query using unknown fields
    ✓ should return an SolrError
  Make a query that return a result where one or more fields match a particular value
    ✓ should be possible
  Make a query that use custom parameter in the query thanks to the set method
    ✓ should be possible
  Make a query that return a result where one or more fields are on a range of values
    ✓ should be possible
  Make a query that return a sorted result in ascending or descending order
    ✓ should be possible

  ♢ Solr Client API: deleteByRange command 

  Add 20 documents with fields last_update_dt and title_t
    ✗ should works 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Delete documents between yesterday and today
    ✗ should works 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Commit change to see effect of the deleteByRange command
    ✗ should works 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 404.Reason: Not Found\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:451:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 404.Reason: Not Found' } // solr.js:451
  Query all documents where title_t === test
    ✗ should find 10 documents 
        » expected 10, 
    got  0 (==) // test-deleteByRange.js:97

  ♢ Solr Client API: facet 

  Create a facet with the following options: field, prefix, query, limit, offset, sort, limit, mincount, missing, method
    ✓ should return a correct response without error

  ♢ Solr Client API: group command 

  Grouping Result with all availables options: field, limit,offset,sort,format,main,ngroups,truncate,cache
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":7,"params":{"group.format":"grouped","group.ngroups":"true","group.limit":"20","group.main":"false","group.cache.percent":"0","wt":"json","q":"description:laptop","group.truncate":"false","group.field":"title","group":"true","group.sort":"score asc","group.offset":"0"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:513:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":7,"params":{"group.format":"grouped","group.ngroups":"true","group.limit":"20","group.main":"false","group.cache.percent":"0","wt":"json","q":"description:laptop","group.truncate":"false","group.field":"title","group":"true","group.sort":"score asc","group.offset":"0"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}' } // solr.js:513
  Grouping Result with a field
    ✗ should be possible 
        » expected null, got { name: 'SolrError', stack: 'SolrError: HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":5,"params":{"group.field":"title","group":"true","wt":"json","q":"description:laptop"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}\n    at IncomingMessage.callbackResponse (/home/lbdremy/workspace/nodejs/solr-client/lib/solr.js:513:19)\n    at IncomingMessage.EventEmitter.emit (events.js:115:20)\n    at IncomingMessage.vows.describe.options.Emitter.emit (/home/lbdremy/workspace/nodejs/solr-client/node_modules/vows/lib/vows.js:237:24)\n    at IncomingMessage._emitEnd (http.js:366:10)\n    at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:149:23)\n    at Socket.socketOnData [as ondata] (http.js:1366:20)\n    at TCP.onread (net.js:402:27)', message: 'HTTP status 400.Reason: {"responseHeader":{"status":400,"QTime":5,"params":{"group.field":"title","group":"true","wt":"json","q":"description:laptop"}},"error":{"msg":"can not use FieldCache on multivalued field: title","code":400}}' } // solr.js:513

  ♢ Solr Client API: More like this 

  Create a mlt with the following options: fl, mindf, mintf, minwl, maxwl, maxqt, maxntp, boost, count
    ✓ should return a correct response without error

✗ Broken » 20 honored ∙ 17 broken (0.257s)

Updating update/json by update solves 9 tests.

✗ Broken » 29 honored ∙ 8 broken (1.833s)

Could you point to me all changes they made on the API between >=3.6 and 4 in order to make it works or send a pull request to support Solr 4, I will merge it if everything is still working for Solr >=3.6.

Thanks it will be great to support Solr 4, even it is still in BETA. :)

@jwarchol
Copy link

jwarchol commented Dec 5, 2012

Any word on Solr 4 support now that it's been released?

@jwarchol
Copy link

jwarchol commented Dec 5, 2012

What schema should the tests pass against when not running mocked?

@lbdremy
Copy link
Owner

lbdremy commented Dec 6, 2012

Hi, I started to work on the branch v0.3.x days ago, but I haven't had time to finish the work, my christmas holiday is coming, which mean I will have time to finish the work, until then I'm sorry the support for Solr 4 in the current release is not great. The version v0.3.0 will have full support for all features of Solr 4, also in this release the tests will not running against a mock or against a solr with a custom schema, which will guarantee tests to pass on any solr 4 instance with a default schema and the default configuration.

You're absolutely right some of the tests will not pass because special fields are expected by the tests to be able to pass, that's a mistake, that's the reason why it won't be the same in the next release v0.3.0. Hopefully I will release it before 2013! :)

Between feel free to make the tests in the master branch more flexible and schema independant, if you feel it.

@jwarchol
Copy link

jwarchol commented Dec 6, 2012

Thanks for the reply @lbdremy! Can you give me some idea what in the current release isn't great for Solr 4? Is there a specific failing or set of features that don't work? It's hard to tell as a new user of the lib until the tests are easier to run. Again, thank you for the work you've put into this lib and for replying. Cheers.

@jwarchol
Copy link

jwarchol commented Dec 7, 2012

I've been able to get all but two tests passing with solr4. I had to update the schema to have the last_update field, and to remove a multi-value attribute from the title field. I had to adjust the test-core.js to remove a waitFlush option that's not valid in solr4. I also had to adjust some query quoting in that same file.

What I'm left with are two odd cases.

  ♢ Solr Client API: createAddStream 

  Adding documents through a stream
    ✗ should works 
        » expected 0, 
    got  500 (==) // test-createAddStream.js:53

  ♢ Solr Client API: deleteByRange command 

  Add 20 documents with fields last_update_dt and title_t
    ✗ should works 
        » expected null, got { message: 'HTTP status 500.Reason: {"responseHeader":{"status":500,"QTime":20},"error":{"msg":"Error opening new searcher","trace":"org.apache.solr.common.SolrException: Error opening new searcher\\n\\tat org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1310)\\n\\tat org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1422)\\n\\tat org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1200)\\n\\tat ....

Both cases seem to be having that "Error opening new searcher" error when I look in the solr logs. If I run either of these two files alone they pass. If I run them together they pass. It fails when I run them with the full suite like "npm test" does.

Any thoughts?

@lbdremy
Copy link
Owner

lbdremy commented Dec 9, 2012

Interesting, could you push your changes somewhere where I could pull your changes and have a look. The problem seems to be that there are too many commits within a small amount of time (http://wiki.apache.org/solr/FAQ#What_does_.22exceeded_limit_of_maxWarmingSearchers.3DX.22_mean.3F). Thanks @jwarchol :)

@jwarchol
Copy link

I've put my code into a pull req #47

@vid
Copy link

vid commented Feb 26, 2013

hi!

solr 4 has some significant features for my project, is it possible to get an update on this issue?

thanks!

@lbdremy
Copy link
Owner

lbdremy commented Feb 27, 2013

hi @vid ,

sorry I'm not really active on this module, I started working on a new version of solr-client with a better support for Solr 4 on the branch v0.3.x some time ago, you can have a look. Tell me what you need, it will be a nice way for me to prioritize work, also if you want to contribute we can talk about it.

@vid
Copy link

vid commented Feb 27, 2013

oh, how'd I miss that?! I've slotted it in, and it seems to function ok.

I'm wondering if you have a 'suggested' solrconfig.xml to use with this client? I notice with Solr 4 I had to explicitly add:

<requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler"/>

But my updates are not showing up. It would be great if you could post one as part of the documentation. I'm trying to use autocommit (to use solr 4.1 as a nosql search database) so mine looks like the following.

Thanks!

<?xml version="1.0" encoding="UTF-8" ?>
<config>
<luceneMatchVersion>LUCENE_41</luceneMatchVersion>
<!-- The DirectoryFactory to use for indexes.
solr.StandardDirectoryFactory, the default, is filesystem based.
solr.RAMDirectoryFactory is memory based, not persistent, and doesn't work with replication. -->
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>

<dataDir>${solr.core0.data.dir:}</dataDir>

<updateHandler class="solr.DirectUpdateHandler2">
<updateLog>
<str name="dir">${solr.core0.data.dir:}</str>
</updateLog>
<autoCommit>
<maxTime>1000</maxTime>
</autoCommit>

&lt;autoSoftCommit&gt;
  &lt;maxTime&gt;1000&lt;/maxTime&gt;
&lt;/autoSoftCommit&gt;

</updateHandler>

<!-- realtime get handler, guaranteed to return the latest stored fields
of any document, without the need to commit or open a new searcher. The current
implementation relies on the updateLog feature being enabled. -->
<requestHandler name="/get" class="solr.RealTimeGetHandler">
<lst name="defaults">
<str name="omitHeader">true</str>
</lst>
</requestHandler>

<requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />

<requestDispatcher handleSelect="true" >
<requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" formdataUploadLimitInKB="2048" />
</requestDispatcher>

<requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
<requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
<requestHandler name="/update" class="solr.UpdateRequestHandler" />
<requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler"/>

<requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />

<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
<lst name="invariants">
<str name="q">solrpingquery</str>
</lst>
<lst name="defaults">
<str name="echoParams">all</str>
</lst>
</requestHandler>

<!-- config for the admin interface -->
<admin>
<defaultQuery>solr</defaultQuery>
</admin>

</config><?xml version="1.0" encoding="UTF-8" ?>
<config>
<luceneMatchVersion>LUCENE_41</luceneMatchVersion>
<!-- The DirectoryFactory to use for indexes.
solr.StandardDirectoryFactory, the default, is filesystem based.
solr.RAMDirectoryFactory is memory based, not persistent, and doesn't work with replication. -->
<directoryFactory name="DirectoryFactory" class="${solr.directoryFactory:solr.StandardDirectoryFactory}"/>

<dataDir>${solr.core0.data.dir:}</dataDir>

<updateHandler class="solr.DirectUpdateHandler2">
<updateLog>
<str name="dir">${solr.core0.data.dir:}</str>
</updateLog>
<autoCommit>
<maxTime>1000</maxTime>
</autoCommit>

&lt;autoSoftCommit&gt;
  &lt;maxTime&gt;1000&lt;/maxTime&gt;
&lt;/autoSoftCommit&gt;

</updateHandler>

<!-- realtime get handler, guaranteed to return the latest stored fields
of any document, without the need to commit or open a new searcher. The current
implementation relies on the updateLog feature being enabled. -->
<requestHandler name="/get" class="solr.RealTimeGetHandler">
<lst name="defaults">
<str name="omitHeader">true</str>
</lst>
</requestHandler>

<requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />

<requestDispatcher handleSelect="true" >
<requestParsers enableRemoteStreaming="false" multipartUploadLimitInKB="2048" formdataUploadLimitInKB="2048" />
</requestDispatcher>

<requestHandler name="standard" class="solr.StandardRequestHandler" default="true" />
<requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
<requestHandler name="/update" class="solr.UpdateRequestHandler" />
<requestHandler name="/update/json" class="solr.JsonUpdateRequestHandler"/>

<requestHandler name="/admin/" class="org.apache.solr.handler.admin.AdminHandlers" />

<requestHandler name="/admin/ping" class="solr.PingRequestHandler">
<lst name="invariants">
<str name="q">solrpingquery</str>
</lst>
<lst name="defaults">
<str name="echoParams">all</str>
</lst>
</requestHandler>

<!-- config for the admin interface -->
<admin>
<defaultQuery>solr</defaultQuery>
</admin>

</config>

@lbdremy
Copy link
Owner

lbdremy commented Feb 27, 2013

The test suite in the branch v0.3.x runs against Solr 4.0 with the schema.xml and the solrconfig.xml available in the folder /test/materials (they are the default configuration files in Solr 4.0), have a look and let me know if you need more informations.

@merrittholmes
Copy link

Hi, Is 0.3 going to be committed any time soon? if it is running aginst solr 4 then surely this warrants even a 0.2.8 release of something?

@lbdremy
Copy link
Owner

lbdremy commented Jun 12, 2013

Hi @merrittholmes, sorry for the delay. I need a 3 or 4 days of work on this module to support new stuff and fix few things in v0.3.x before I can released it, you can expect a release before the end of the month.

@merrittholmes
Copy link

Thanks for the update. I look forward to the new realease.

Thanks for all your hard work and hopefully we can start to contribute too
past your release.

Mike

On Wed, Jun 12, 2013 at 10:21 AM, Remy Loubradou
notifications@github.comwrote:

Hi @merrittholmes https://github.com/merrittholmes, sorry for the
delay. I need a 3 or 4 days of work on this module to support new stuff and
fix few things in v0.3.x before I can released it, you can expect a release
before the end of the month.


Reply to this email directly or view it on GitHubhttps://github.com//issues/27#issuecomment-19314638
.

Mike Merritt-Holmes
Big Data Partnership
Mob: 07973 460 394
Tel: +44 (0)20 7 205 2550
twitter.com/bigdataexperts
www.bigdatapartnership.com

NOTICE AND DISCLAIMER

This email (including attachments) is confidential. If you are not the
intended recipient, notify the sender immediately, delete this email from
your system and do not disclose or use for any purpose.

Business Address: 16-24 Underwood Street, London N1 7JQ
Registered Office: Finsgate, 5-7 Cranwood Street, London, EC1V 9EE
Big Data Partnership Limited is a company registered in England & Wales
with Company No 7904824

@blockmar
Copy link

Hi! Just wanted to say I like your library but also eagerly waits 0.3.X since I now have a need for updates and optimize.

I have solved my problem by hooking in to the client.update method "fixing" the query before it is sent.

Thanks for your hard work!

@lbdremy
Copy link
Owner

lbdremy commented Jan 22, 2014

Thanks man! When I saw the age of this issue I cried, quite shameful ... but I still intend to do it.

@marc-portier
Copy link
Collaborator

This issue seems still to be unresolved? Is there any interest in patches for this?
I'm open to guidance to make the acceptance of those as smooth as possible. Is there work and/or thinking underway?

@lbdremy
Copy link
Owner

lbdremy commented Jul 14, 2014

Hi @marc-portier,

Yes, you're right it is unresolved, there is some changes in the branch v0.3.x that fix some of the issues with Solr 4 but the branch is not yet ready to be merged. Would you like to work on it?

@marc-portier
Copy link
Collaborator

Yep. Will need some guidance though. I need thuis module in a project. And i rather include a broad known release then my own fork.

So what prevents merge? Which tasks do you want tot delegatie?

@lbdremy
Copy link
Owner

lbdremy commented Jul 15, 2014

Great, I will look through the issues again this evening and come up with something. What is missing or not working now for your project that you need?

@marc-portier
Copy link
Collaborator

Don't think I'll be having very fancy requirements, I'm a simple bloke :)

Seriously:
Just storing, quering, facet-browsing, removal, the classical stuff - no upront need for the cloud thingies.
In 4.x land the NRT feature will be handy, as will be the version usage for optimistic locking. But most of that is pretty much transparant to this client I suppose?

But as I said: the comfort of a nicely numbered release is worth something too, so I'm open to some extra mileage to help us achieve that.

@lbdremy
Copy link
Owner

lbdremy commented Jul 16, 2014

Ok sounds good to me!

I have organized a bit the issues, so in order to land v0.3.0 in npm we need to close those https://github.com/lbdremy/solr-node-client/issues?direction=desc&labels=v0.3.x&page=1&sort=created&state=open, we may need to add some more as we find issues along or missing features.

But mainly the first step is to reach 100% test coverage (I have added a section in the README to explain how to get the report on the actual test coverage), as we write the tests we need to make sure we have an example per feature in the folder examples, so we have a comprehensive list of examples on the website.

When we're done with that we can add missing feature of Solr 4.

P.S: I just fixed some issues and made some changes on the branch v0.3.x, so you may want to pull before getting started :)

@marc-portier
Copy link
Collaborator

Cool.
I've merged with your upstream changes, so I'm ready to go.
Don't be shy to actually assign issues, else I'll just be grabbing one that
pleases me most :)

2014-07-16 2:09 GMT+02:00 Remy Loubradou notifications@github.com:

Ok sounds good to me!

I have organized a bit the issues, so in order to land v0.3.0 in npm we
need to close those
https://github.com/lbdremy/solr-node-client/issues?direction=desc&labels=v0.3.x&page=1&sort=created&state=open,
we may need to add some more as we find issues along or missing features.

But mainly the first step is to reach 100% test coverage (I have added a
section in the README to explain how to get the report on the actual test
coverage), as we write the tests we need to make sure we have an example
per feature in the folder examples, so we have a comprehensive list of
examples on the website.

When we're done with that we can add missing feature of Solr 4.

P.S: I just fixed some issues and made some changes on the branch v0.3.x,
so you may want to pull before getting started :)


Reply to this email directly or view it on GitHub
#27 (comment)
.

@lbdremy
Copy link
Owner

lbdremy commented Jul 16, 2014

Great,
I have added you as collaborator so you can assign to yourself issues you want to work on, also like that we don't step on each other's toes. But we should continue to use the pull request system, easier to do review and stuff :)

@marc-portier
Copy link
Collaborator

thxs for that.
I obviously agree on the pull-req side of things

2014-07-16 12:20 GMT+02:00 Remy Loubradou notifications@github.com:

Great,
I have added you as collaborator so you can assign to yourself issues you
want to work on, also like that we don't step on each other's toes. But we
should continue to use the pull request system, easier to do review and
stuff :)


Reply to this email directly or view it on GitHub
#27 (comment)
.

@lbdremy
Copy link
Owner

lbdremy commented Aug 16, 2014

Landed on npm version 0.3.0

@lbdremy lbdremy closed this as completed Aug 16, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants