<commit_before>Changelog
=========

%%version%% (unreleased)
------------------------

- Update project URL. [<NAME>]

v3.5.0 (2016-05-24)
-------------------

New
~~~

- Expose the full Solr response in `Results` [Chris Adams]

  This makes life easier for anyone using custom extensions by
  removing the need to create a `Results` subclass just to get
  access to an extra dictionary key.

- More flexible control of request handlers. [nuarhu]

  This allows configuring the default search handler and overriding it for every query method

  Thanks to @nuarhu for the patch

- Start maintaining a changelog from gitchangelog. [<NAME>]

- Overwrite flag for Solr.add (closes #182) [<NAME>ams]
<commit_msg>Update changelog !minor<commit_after>Changelog
=========

%%version%% (unreleased)
------------------------

New
~~~

- Support for nested documents (closes #170) [Chris Adams]

  This adds support for Solr's nested documents in `Solr.add`

  Thanks to @skirsdeda for the patch

- ZooKeeper can receive an existing KazooClient instance. [Chris Adams]

  This simplifies advanced customization by allowing you to pass in an existing instance which is configured in whatever manner necessary.

Changes
~~~~~~~

- Logging: pass full request body + headers as extra data. [Chris Adams]

  This doesn't affect the normal logging output but is helpful for
  aggregation systems such as Sentry where the full request information
  may be displayed for debugging purposes

- Basic max_retries for ZooKeeper. [Chris Adams]

  Kazoo sets the default to hang forever which is frequently not the desired error-handling behavior. This makes it easier to set a limit on the number of retries and we use it in testing to avoid the suite hanging endlessly.

- Better error message for Solr failures. [Chris Adams]

  Previously when ZooKeeper had no active shards pysolr
  would return an error when `random.shuffle` received
  an empty list. Now it will raise an exception which
  will hopefully indicate just how bad the situation is.

- Remove __del__ methods. [<NAME>]

  The __del__ methods were added in an attempt to avoid Kazoo-related
  failures as part of the SolrCloud support but can cause other problems
  on different versions of Python (see #193).

  Since the errors in question were observed during testing this commit
  removes the __del__ methods and we will have to find an alternative for
  making tests fail safely.

Fix
~~~

- Set KazooClient timeout. [Chris Adams]

  `__init__` was not actually passing this to the ZooKeeper client

Other
~~~~~

- Oops.. Add a missing assert in tests. [Tadas Dailyda]

- Refactor _build_doc to be recursive and allow deeper document nesting,
  fix tests accordingly. [Tadas Dailyda]

- Add some block join queries to test_search. [Tadas Dailyda]

- Add some nested docs to the tests. [Tadas Dailyda]

- Implement nested documents functionality. [Tadas Dailyda]

- ZooKeeper: by default use the same timeout for commands and
  connections. [<NAME>]

- Tox: run SolrCloud tests (parity with Travis CI) [Chris Adams]

- Update project URL. [Chris Adams]

v3.5.0 (2016-05-24)
-------------------

New
~~~

- Expose the full Solr response in `Results` [Chris Adams]

  This makes life easier for anyone using custom extensions by
  removing the need to create a `Results` subclass just to get
  access to an extra dictionary key.

- More flexible control of request handlers. [nuarhu]

  This allows configuring the default search handler and overriding it for every query method

  Thanks to @nuarhu for the patch

- Start maintaining a changelog from gitchangelog. [<NAME>]

- Overwrite flag for Solr.add (closes #182) [Chris Adams]

{'fraction_non_alphanumeric': 0.08586956521739131, 'fraction_numerical': 0.00923913043478261, 'mean_word_length': 3.5613382899628254, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6665552', 'n_tokens_mistral': 1064, 'n_tokens_neox': 974, 'n_words': 507}