{"action":"created","issue":{"url":"https://api.github.com/repos/marklogic/marklogic-samplestack/issues/401","labels_url":"https://api.github.com/repos/marklogic/marklogic-samplestack/issues/401/labels{/name}","comments_url":"https://api.github.com/repos/marklogic/marklogic-samplestack/issues/401/comments","events_url":"https://api.github.com/repos/marklogic/marklogic-samplestack/issues/401/events","html_url":"https://github.com/marklogic/marklogic-samplestack/issues/401","id":53125187,"number":401,"title":"tags uber-issue","user":{"login":"laurelnaiad","id":4078946,"avatar_url":"https://avatars.githubusercontent.com/u/4078946?v=3","gravatar_id":"","url":"https://api.github.com/users/laurelnaiad","html_url":"https://github.com/laurelnaiad","followers_url":"https://api.github.com/users/laurelnaiad/followers","following_url":"https://api.github.com/users/laurelnaiad/following{/other_user}","gists_url":"https://api.github.com/users/laurelnaiad/gists{/gist_id}","starred_url":"https://api.github.com/users/laurelnaiad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laurelnaiad/subscriptions","organizations_url":"https://api.github.com/users/laurelnaiad/orgs","repos_url":"https://api.github.com/users/laurelnaiad/repos","events_url":"https://api.github.com/users/laurelnaiad/events{/privacy}","received_events_url":"https://api.github.com/users/laurelnaiad/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/marklogic/marklogic-samplestack/labels/fix","name":"fix","color":"eb6420"},{"url":"https://api.github.com/repos/marklogic/marklogic-samplestack/labels/major","name":"major","color":"fbca04"},{"url":"https://api.github.com/repos/marklogic/marklogic-samplestack/labels/Task","name":"Task","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"laurelnaiad","id":4078946,"avatar_url":"https://avatars.githubusercontent.com/u/4078946?v=3","gravatar_id":"","url":"https://api.github.com/users/laurelnaiad","html_url":"https://github.com/laurelnaiad","followers_url":"https://api.github.com/users/laurelnaiad/followers","following_url":"https://api.github.com/users/laurelnaiad/following{/other_user}","gists_url":"https://api.github.com/users/laurelnaiad/gists{/gist_id}","starred_url":"https://api.github.com/users/laurelnaiad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laurelnaiad/subscriptions","organizations_url":"https://api.github.com/users/laurelnaiad/orgs","repos_url":"https://api.github.com/users/laurelnaiad/repos","events_url":"https://api.github.com/users/laurelnaiad/events{/privacy}","received_events_url":"https://api.github.com/users/laurelnaiad/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/marklogic/marklogic-samplestack/milestones/2","labels_url":"https://api.github.com/repos/marklogic/marklogic-samplestack/milestones/2/labels","id":640443,"number":2,"title":"8.0-1","description":null,"creator":{"login":"laurelnaiad","id":4078946,"avatar_url":"https://avatars.githubusercontent.com/u/4078946?v=3","gravatar_id":"","url":"https://api.github.com/users/laurelnaiad","html_url":"https://github.com/laurelnaiad","followers_url":"https://api.github.com/users/laurelnaiad/followers","following_url":"https://api.github.com/users/laurelnaiad/following{/other_user}","gists_url":"https://api.github.com/users/laurelnaiad/gists{/gist_id}","starred_url":"https://api.github.com/users/laurelnaiad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laurelnaiad/subscriptions","organizations_url":"https://api.github.com/users/laurelnaiad/orgs","repos_url":"https://api.github.com/users/laurelnaiad/repos","events_url":"https://api.github.com/users/laurelnaiad/events{/privacy}","received_events_url":"https://api.github.com/users/laurelnaiad/received_events","type":"User","site_admin":false},"open_issues":99,"closed_issues":31,"state":"open","created_at":"2014-04-25T15:53:06Z","updated_at":"2015-01-21T21:22:02Z","due_on":null,"closed_at":null},"comments":70,"created_at":"2014-12-30T15:59:11Z","updated_at":"2015-01-21T21:22:35Z","closed_at":null,"body":"This is, first, an attempt to consolidate and verify consensus on what we know we need to do for tags. I have some ideas for API design and I'm sure @grechaw does, too. We had a conceptual model in mind at one point.  However, I think we ought to make sure we're on the same page as to functionality before we dig back into the API.\r\n\r\nHere's what I think we know. It's entirely possible, if not probable, that I've missed something or gotten something wrong. If you have adds/edits/deletes, please comment. I will then update this issue, so that we have a single comment which contains our consensus.\r\n\r\n# Tags Needs\r\n\r\n## Lookups in Searches\r\n\r\n### Tags Filter List\r\n\r\nThe tags filter displays a list of tags that appear in documents which match any other search crtieria which are active. This \"other search criteria\" may text criteria, date range filter, **and other tags already selected as filters**. In other words, the list of tags displayed are only those tags that appear in documents found by the rest of the search definition.\r\n\r\nThe filter display itself lists a limited number of these tags, in descending order of the number of documents in the search in which they appear, and those document counts are displayed with each such tag.\r\n\r\nHowever, the endpoint should be capable of searching returning a paged result, as this same behavior is used in the next two cases.\r\n\r\n### Tags Filter Typeahead \r\n\r\nThe tags filter typeahead allows the user to search tags which are in the above set by a substring -- if the user types \"jqu\" then \"jquery\" would be in the subset, for example. Such a list has the same features as the one described above, however paging is not necessary because we expect the user to type a more specific substring if they have not yet located the tag that they are seeking.\r\n\r\n### Tags Filter Dialog\r\n\r\nThe tags filter dialog is founded as a mashup of the previous two features. It has a relatively long page length (~35 items?), and it may be filtered by substring. It may also be sorted by count (as the prior features are) **or** by name.\r\n\r\n## Show Related Tags\r\n\r\nWithin the context of other search criteria (**excepting any tags filters**) we can display a list of \"related\" tags via Semantics. These are to be tags which are related to one given tag, and which appear in documents that are found in the context of said other search criteria. Given that constraint, the matching counts that are returned are the number of documents that match the other criteria and also contain the given related tag (ignoring all other tags filter criteria).\r\n\r\n## Search Results\r\n\r\nAlong with the enablers for defining search criteria above, we also display tag counts for the documents for those tags which are already **in** search criteria. In essence, this is seen as part of the \"regular\" search results.\r\n\r\n## In Ask Question Context\r\n\r\nIn the context of asking a question, the entire known set of tags is searched by substring **without any other applied criteria** (except for the list of tags that have already been selected). The user begins to type a tag name, and a list of tags that match that substring (excluding already selected tags) is displayed, from which the user may select a tag.\r\n\r\n/cc @grechaw @popzip, @yawitz @wooldridge "},"comment":{"url":"https://api.github.com/repos/marklogic/marklogic-samplestack/issues/comments/70924303","html_url":"https://github.com/marklogic/marklogic-samplestack/issues/401#issuecomment-70924303","issue_url":"https://api.github.com/repos/marklogic/marklogic-samplestack/issues/401","id":70924303,"user":{"login":"grechaw","id":382672,"avatar_url":"https://avatars.githubusercontent.com/u/382672?v=3","gravatar_id":"","url":"https://api.github.com/users/grechaw","html_url":"https://github.com/grechaw","followers_url":"https://api.github.com/users/grechaw/followers","following_url":"https://api.github.com/users/grechaw/following{/other_user}","gists_url":"https://api.github.com/users/grechaw/gists{/gist_id}","starred_url":"https://api.github.com/users/grechaw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grechaw/subscriptions","organizations_url":"https://api.github.com/users/grechaw/orgs","repos_url":"https://api.github.com/users/grechaw/repos","events_url":"https://api.github.com/users/grechaw/events{/privacy}","received_events_url":"https://api.github.com/users/grechaw/received_events","type":"User","site_admin":false},"created_at":"2015-01-21T21:22:35Z","updated_at":"2015-01-21T21:22:35Z","body":"Super -- \r\n\r\nSo you might want to consider adjusting the number of characters typed before the call to /v1/tags -- It's entirely possible that single-character patterns should have been handled differently.  Just a hunch but something to look for.  MarkLogic by default starts indexing with three characters - a balance between scalability and speed of searches.  It's possible to turn on two-character indexing, not normally recommended.  one-character indexing is very strongly discouraged - nobody needs it.  In other words, samplestack with 10^15  documents might require some concessions with search.  A future problem."}}