Development¶
Releases can be found on the Python Package Index at http://pypi.python.org/pypi/collective.solr. The code and issue trackers can be found on GitHub at https://github.com/collective/collective.solr.
For outstanding issues and features remaining to be implemented please see the to-do list included in the package as well as it’s issue tracker.
TODOs:¶
- Migrate tests to use plone.app.testing
- Migrate control panel to use plone.autoform and plone.app.registry
- support for date facets
- result iterator (with __len__ on results object)
- support for “navtree” and “level” arguments for path queries
- provide decorator for solr exceptions
- add signal handlers (see store.py)
- add a configurable queue limit for large transactions
- mapping from accessor name to attribute name, i.e. getTitle -> title, preferably via <copyField> tags in the solr schema
- evaluate http://www.gnuenterprise.org/~jcater/solr.py as a replacement (also see http://tinyurl.com/2zcogf)
- evaluate sunburnet as a replacement https://pypi.python.org/pypi/sunburnt
- evaluate mysolr as backend https://pypi.python.org/pypi/mysolr
- implement LocalParams to have a nicer facet view http://wiki.apache.org/solr/SimpleFacetParameters#Multi-Select_Faceting_and_LocalParams
- Use current search view and get rid of ancient search override
- Implement a push only and read only mode
- Play nice with eea.facetednavigation
Search widget:¶
The search widget in the @@search view is implemented using React. It provides the default Plone search behavior. It uses the search REST API provided by the plone.restapi package.
The sources and distribution files can be found in the static directory. The Webpack build files are also provided in case you need to improve, customize or extend the default features of the widget.
You can setup the widget development environment by:
$ cd src/collective/solr/static/
$ npm install
Then also given a collective.solr development instance running in port 8080 and solr running:
$ npm start
Then you can access to the URL http://localhost:3000
Once you’ve finished developing, you should create a bundle by:
$ npm run build