{"action":"created","issue":{"url":"https://api.github.com/repos/vufind-org/vufind-browse-handler/issues/23","repository_url":"https://api.github.com/repos/vufind-org/vufind-browse-handler","labels_url":"https://api.github.com/repos/vufind-org/vufind-browse-handler/issues/23/labels{/name}","comments_url":"https://api.github.com/repos/vufind-org/vufind-browse-handler/issues/23/comments","events_url":"https://api.github.com/repos/vufind-org/vufind-browse-handler/issues/23/events","html_url":"https://github.com/vufind-org/vufind-browse-handler/pull/23","id":245866530,"node_id":"MDExOlB1bGxSZXF1ZXN0MTMyNjIzNDAw","number":23,"title":"Optimize matching ids","user":{"login":"todolson","id":1071169,"node_id":"MDQ6VXNlcjEwNzExNjk=","avatar_url":"https://avatars0.githubusercontent.com/u/1071169?v=4","gravatar_id":"","url":"https://api.github.com/users/todolson","html_url":"https://github.com/todolson","followers_url":"https://api.github.com/users/todolson/followers","following_url":"https://api.github.com/users/todolson/following{/other_user}","gists_url":"https://api.github.com/users/todolson/gists{/gist_id}","starred_url":"https://api.github.com/users/todolson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/todolson/subscriptions","organizations_url":"https://api.github.com/users/todolson/orgs","repos_url":"https://api.github.com/users/todolson/repos","events_url":"https://api.github.com/users/todolson/events{/privacy}","received_events_url":"https://api.github.com/users/todolson/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":24,"created_at":"2017-07-26T21:55:37Z","updated_at":"2018-12-03T04:11:41Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/vufind-org/vufind-browse-handler/pulls/23","html_url":"https://github.com/vufind-org/vufind-browse-handler/pull/23","diff_url":"https://github.com/vufind-org/vufind-browse-handler/pull/23.diff","patch_url":"https://github.com/vufind-org/vufind-browse-handler/pull/23.patch"},"body":"This is initial work on optimizing BibDB::matchingIDs. The goal is to limit the amount of work done by the browse handler when generating browse entries that have large number of hits.\r\n\r\nTODO\r\n- [ ] Simplify logic around `id` and `extra` fields:\r\n- - [x] merge id field with extra fields\r\n- - [ ] add `fields` parameter to query as a wrapper around `extras`\r\n- - [ ] migrate all code to use `fields` internally\r\n- [x] ~~Implement maxBibListSize logic~~ - obsolete\r\n"},"comment":{"url":"https://api.github.com/repos/vufind-org/vufind-browse-handler/issues/comments/443583697","html_url":"https://github.com/vufind-org/vufind-browse-handler/pull/23#issuecomment-443583697","issue_url":"https://api.github.com/repos/vufind-org/vufind-browse-handler/issues/23","id":443583697,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0MzU4MzY5Nw==","user":{"login":"marktriggs","id":149123,"node_id":"MDQ6VXNlcjE0OTEyMw==","avatar_url":"https://avatars1.githubusercontent.com/u/149123?v=4","gravatar_id":"","url":"https://api.github.com/users/marktriggs","html_url":"https://github.com/marktriggs","followers_url":"https://api.github.com/users/marktriggs/followers","following_url":"https://api.github.com/users/marktriggs/following{/other_user}","gists_url":"https://api.github.com/users/marktriggs/gists{/gist_id}","starred_url":"https://api.github.com/users/marktriggs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marktriggs/subscriptions","organizations_url":"https://api.github.com/users/marktriggs/orgs","repos_url":"https://api.github.com/users/marktriggs/repos","events_url":"https://api.github.com/users/marktriggs/events{/privacy}","received_events_url":"https://api.github.com/users/marktriggs/received_events","type":"User","site_admin":false},"created_at":"2018-12-03T04:11:41Z","updated_at":"2018-12-03T04:11:41Z","author_association":"COLLABORATOR","body":"Ah, gotcha, that makes sense.\r\n\r\nIt looks like there are a bunch of serialization options, but straight object would require some work.  It seems to run through this sequence of type checks:\r\n\r\nhttps://github.com/apache/lucene-solr/blob/c97f27b06c1d7c250e9596a9bc7bf5ca11ef6ad3/solr/core/src/java/org/apache/solr/response/TextResponseWriter.java#L120\r\n\r\nThen falls through to this one:\r\n\r\nhttps://github.com/apache/lucene-solr/blob/25bca6f16513fda0bdd2ab670633bac26dbf5d6e/solr/solrj/src/java/org/apache/solr/common/util/TextWriter.java#L49\r\n\r\nI think if your object implemented WriteableValue, it would get asked to serialize itself by calling the underlying methods on the TextResponseWriter (`writeStr`, `writeInt`, etc.), but that's a fair bit more work.  And even then, it's not clear how you would get a `BrowseItem` back out the other side without also writing a corresponding parser..."}}
{"actor":{"display_login":"marktriggs"}}