EBernhardson has uploaded a new change for review.
https://gerrit.wikimedia.org/r/235345
Change subject: [WIP] A/B test for experimental suggestions api
......................................................................
[WIP] A/B test for experimental suggestions api
Related mediawiki-core patch: I1fab57ea
Bug: T111078
Change-Id: I595db33a1970651f34290bdfe1f924ad11119bc3
---
M WikimediaEvents.php
A modules/ext.wikimediaEvents.searchSuggest.js
2 files changed, 62 insertions(+), 0 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/WikimediaEvents
refs/changes/45/235345/1
diff --git a/WikimediaEvents.php b/WikimediaEvents.php
index 4a2f0eb..d86fafa 100644
--- a/WikimediaEvents.php
+++ b/WikimediaEvents.php
@@ -80,6 +80,7 @@
// Don't remove if empty!
'scripts' => array(
'ext.wikimediaEvents.resourceloader.js',
+ 'ext.wikimediaEvents.searchSuggest.js',
),
'dependencies' => array(
'ext.wikimediaEvents.search',
diff --git a/modules/ext.wikimediaEvents.searchSuggest.js
b/modules/ext.wikimediaEvents.searchSuggest.js
new file mode 100644
index 0000000..0901935
--- /dev/null
+++ b/modules/ext.wikimediaEvents.searchSuggest.js
@@ -0,0 +1,61 @@
+/*!
+ * Javacsript module for measuring internal search bounce rate and dwell time.
+ *
+ * @license GNU GPL v2 or later
+ * @author Erik Bernhardson <[email protected]>
+ */
+( function ( mw, $, undefined ) {
+
+ function oneIn( populationSize ) {
+ return Math.floor( Math.random() * populationSize ) === 0;
+ }
+
+ // user was not chosen in a sampling of pages
+ if ( !oneIn( 2 ) ) {
+ return;
+ }
+
+ mw.loader.using( [
+ 'mediawiki.user',
+ 'ext.eventLogging',
+ //'schema.SomeThingOrOther'
+ ] ).then( function () {
+ var api,
+ pageId = mw.user.generateRandomSessionId(),
+ logEvent = function ( action ) {
+ mw.eventLog.logEvent( 'SomeThingOrOther', {
+ // searchResultPage, visitPage or
checkin
+ action: action,
+ // used to correlate actions that
happen on the same
+ // page. Otherwise a user opening
multiple search results
+ // in tabs would make their events
overlap and the dwell
+ // time per page uncertain.
+ pageId: pageId,
+ // we noticed a number of events get
sent multiple
+ // times from javascript, especially
when using sendBeacon.
+ // This logId allows for later
deduplication
+ logId:
mw.user.generateRandomSessionId(),
+ } );
+ };
+
+ mw.searchSuggest.config.fetch = function ( query, response,
maxRows ) {
+ var node = this[0];
+
+ api = api || new mw.Api();
+
+ $.data( node, 'request', api.get( {
+ action: 'cirrus-suggest',
+ text: query,
+ limit: maxRows,
+ } ).done( function ( data ) {
+ console.log( 'cirrus-suggest', data );
+ response( $.map( data.suggest, function (
suggestion ) {
+ return suggestion.title;
+ } ) );
+ } ) );
+ };
+ mw.searchSuggest.install();
+
+ // @todo add tracking events
+ } );
+}( mediaWiki, jQuery ) );
--
To view, visit https://gerrit.wikimedia.org/r/235345
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I595db33a1970651f34290bdfe1f924ad11119bc3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikimediaEvents
Gerrit-Branch: master
Gerrit-Owner: EBernhardson <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits