Renamed namespaces and added deployment guide
|
@ -1,4 +1,8 @@
|
|||
Document DB
|
||||
======
|
||||
|
||||
See the hands-on lab [here](hands-on-lab.md)
|
||||
See the hands-on lab [here](hands-on-lab.md)
|
||||
|
||||
## Deployment
|
||||
|
||||
Before you can run the lab you will need to go through the [deployment guide](./deployment/readme.md)
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
|
||||
"contentVersion": "1.0.0.0",
|
||||
"parameters": {
|
||||
"databaseAccountName": {
|
||||
"type": "string",
|
||||
"metadata": {
|
||||
"description": "The DocumentDB database account name."
|
||||
}
|
||||
}
|
||||
},
|
||||
"variables": {
|
||||
"offerType": "Standard"
|
||||
},
|
||||
"resources": [
|
||||
{
|
||||
"apiVersion": "2015-04-08",
|
||||
"type": "Microsoft.DocumentDB/databaseAccounts",
|
||||
"name": "[parameters('databaseAccountName')]",
|
||||
"location": "[resourceGroup().location]",
|
||||
"properties": {
|
||||
"name": "[parameters('databaseAccountName')]",
|
||||
"databaseAccountOfferType": "[variables('offerType')]",
|
||||
"locations": [
|
||||
{
|
||||
"locationName": "West US",
|
||||
"failoverPriority": 0
|
||||
},
|
||||
{
|
||||
"locationName": "Central US",
|
||||
"failoverPriority": 1
|
||||
},
|
||||
{
|
||||
"locationName": "North Europe",
|
||||
"failoverPriority": 2
|
||||
},
|
||||
{
|
||||
"locationName": "Southeast Asia",
|
||||
"failoverPriority": 3
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"outputs": {
|
||||
"DocumentDBEndPoint": {
|
||||
"type": "string",
|
||||
"value": "[reference(concat('Microsoft.DocumentDB/databaseAccounts/', parameters('databaseAccountName'))).documentEndpoint]"
|
||||
},
|
||||
"DocumentDBKey": {
|
||||
"type": "string",
|
||||
"value": "[listKeys(resourceId('Microsoft.DocumentDB/databaseAccounts', parameters('databaseAccountName')), '2015-11-06').primaryMasterKey]"
|
||||
}
|
||||
}
|
||||
}
|
После Ширина: | Высота: | Размер: 38 KiB |
После Ширина: | Высота: | Размер: 8.9 KiB |
После Ширина: | Высота: | Размер: 14 KiB |
После Ширина: | Высота: | Размер: 42 KiB |
После Ширина: | Высота: | Размер: 16 KiB |
После Ширина: | Высота: | Размер: 4.4 KiB |
|
@ -0,0 +1,120 @@
|
|||
# Deployment Guide for DocumentDB Lab
|
||||
|
||||
## Azure Resources
|
||||
|
||||
To deploy the azure resouces needed for this lab, click the button below
|
||||
|
||||
![https://portal.azure.com/#create/Microsoft.Template/uri/https%3A%2F%2Fraw.githubusercontent.com%2FMicrosoft%2Fcode-challenges%2Fmaster%2FLabs%2FDocumentDB%2FDeployment%2Fazuredeploy.json](http://azuredeploy.net/deploybutton.png)
|
||||
|
||||
Enter a resource group and a suitable (unique) name for your DocumentDB server. **This must be all lowercase** Set West US as the Location of the resource group.
|
||||
|
||||
![](./images/azure_deploy.png)
|
||||
|
||||
Click Purchase.
|
||||
|
||||
Once the deployment has finished save the DocumentDBKey and DocumentDBEndpoint from the output.
|
||||
|
||||
![](./images/azure_deploy_output.png)
|
||||
|
||||
## Seed Data
|
||||
|
||||
Open the Microsoft.CodeChallenges.DocumentDB.TweetSeed project found in the utilities directory.
|
||||
|
||||
Open the`app.config` and add the key and endpoint values from the output shown earlier.
|
||||
|
||||
e.g. (The key has been destroyed)
|
||||
|
||||
```XML
|
||||
<add key="DocumentDB:Endpoint" value="https://docdbjoeblogslab.documents.azure.com:443/" />
|
||||
<add key="DocumentDB:Key" value="uEEjfHPeUog9uYsLz3xL57ua93L7fuxkre9O9X0p65LhTJoGFUDywnbtLk9PWxPiFOadP49XMrs3lNDZcBFlwA" />
|
||||
```
|
||||
|
||||
We need to add our twitter credentials so we can search/stream tweets from twitter.
|
||||
|
||||
Navigate to (https://apps.twitter.com/)[https://apps.twitter.com/] and Login with your user account. Once you are at the home page, click the Create New App button.
|
||||
|
||||
![](./images/twitter_new_app.png)
|
||||
|
||||
Fill out the basic information
|
||||
|
||||
e.g.
|
||||
|
||||
![](./images/twitter_app_details.png)
|
||||
|
||||
Click on `Create your Twitter application`
|
||||
|
||||
Navigate to 'Keys and Access Tokens'
|
||||
|
||||
![](./images/twitter_keys.png)
|
||||
|
||||
Copy the Consumer Key (API Key) and Consumer Secret (API Secret) to the`app.config`.
|
||||
|
||||
e.g. (The keys in this example have been destroyed)
|
||||
|
||||
```XML
|
||||
<add key="Twitter:ConsumerKey" value="DUzBFBfqr1RQGGFH3BWlbtt1n" />
|
||||
<add key="Twitter:ConsumerSecret" value="pEzdV7ksFxSDmxhK344uu97Ey5eW8uiDDn8nlrCBNQS9NjoY3M" />
|
||||
```
|
||||
|
||||
Navigate down the page and click 'Create my Access Token'
|
||||
|
||||
Copy the Access Token and Access Token Secret to the`app.config`
|
||||
|
||||
![](./images/twitter_access_token.png)
|
||||
|
||||
e.g. (The keys in this example have been destroyed)
|
||||
|
||||
```XML
|
||||
<add key="Twitter:AccessToken" value="349776177-TNxIlTJLXJKWkEm6i5PsRyLesBIJi6Px6UyBmKEU" />
|
||||
<add key="Twitter:AccessTokenSecret" value="bmwuB4HuSWSutrGK7xYyqjefXO0GBWIQDCZqmsKEo4AZE" />
|
||||
```
|
||||
|
||||
There are two ways to seed data in your DocumentDB, you can either search for tags or use a live stream of tweets that are using the hashtags that are specified in the`app.config`.
|
||||
|
||||
Firstly add the tags that you want to use in the`app.config` by comma seperating some hash tags
|
||||
|
||||
e.g.
|
||||
|
||||
```XML
|
||||
<add key="Twitter:Tags" value="#MSBuild,#DocumentDb,#Azure"/>
|
||||
```
|
||||
|
||||
Open `Program.cs`
|
||||
|
||||
You will see this snippet of code
|
||||
|
||||
```csharp
|
||||
TwitterLiveStream(credentials, tags);
|
||||
//TwitterSearch(credentials, tags);
|
||||
```
|
||||
|
||||
If you want to use a live stream of data to seed your data, then leave it as it is.
|
||||
If you want execute a search of past tweets (will seed your DocumentDB faster) then swap the commented out line so that it looks like this.
|
||||
|
||||
```csharp
|
||||
//TwitterLiveStream(credentials, tags);
|
||||
TwitterSearch(credentials, tags);
|
||||
```
|
||||
|
||||
Run the application and you will see it seeding your DocumentDB database!
|
||||
|
||||
(Note if you are seeding from the live stream then you will have to manually close the application)
|
||||
|
||||
## Configure the lab
|
||||
|
||||
Open the Microsoft.CodeChallenges.DocumentDB.Lab.sln in /src/Microsoft.CodeChallenges.DocumentDB.Lab and open `web.config`
|
||||
|
||||
Copy and paste all the DocumentDB:: settings from the Seed Project to this web.config
|
||||
|
||||
```XML
|
||||
<add key="DocumentDB:Endpoint" value="https://docdbjoeblogslab.documents.azure.com:443/" />
|
||||
<add key="DocumentDB:Key" value="uEEjfHPeUog9uYsLz3xL57ua93L7fuxkre9O9X0p65LhTJoGFUDywnbtLk9PWxPiFOadP49XMrs3lNDZcBFlwA" />
|
||||
<add key="DocumentDB:DatabaseName" value="tweets" />
|
||||
<add key="DocumentDB:CollectionName" value="build" />
|
||||
```
|
||||
|
||||
Go through the [code challenge](../hands-on-lab.md)
|
||||
|
||||
|
||||
|
||||
|
|
@ -1,9 +1,9 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.23107.0
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26403.7
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LabWeb", "LabWeb\LabWeb.csproj", "{E18A7397-1BBF-4060-856E-1A72307CDDEA}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CodeChallenges.DocumentDB.Lab", "Microsoft.CodeChallenges.DocumentDB.Lab\Microsoft.CodeChallenges.DocumentDB.Lab.csproj", "{E18A7397-1BBF-4060-856E-1A72307CDDEA}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
До Ширина: | Высота: | Размер: 9.9 KiB После Ширина: | Высота: | Размер: 9.9 KiB |
|
@ -4,13 +4,13 @@ using System.Configuration;
|
|||
using System.Diagnostics;
|
||||
using System.Threading.Tasks;
|
||||
using System.Web.Mvc;
|
||||
using LabWeb.Models;
|
||||
using Microsoft.Azure.Documents;
|
||||
using Microsoft.Azure.Documents.Client;
|
||||
using Microsoft.Azure.Documents.Linq;
|
||||
using Microsoft.CodeChallenges.DocumentDB.Lab.Models;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace LabWeb.Controllers
|
||||
namespace Microsoft.CodeChallenges.DocumentDB.Lab.Controllers
|
||||
{
|
||||
public class HomeController : Controller
|
||||
{
|
||||
|
@ -88,9 +88,7 @@ namespace LabWeb.Controllers
|
|||
};
|
||||
var numRetries = 0;
|
||||
|
||||
var collectionUri = GetDocumentCollectionUri();
|
||||
var client = await GetReadOnlyClient(locationName);
|
||||
var docQuery = client.CreateDocumentQuery(collectionUri, query, _feedOptions).AsDocumentQuery();
|
||||
IDocumentQuery<dynamic> docQuery = null;
|
||||
|
||||
if (docQuery != null)
|
||||
{
|
|
@ -3,7 +3,7 @@ using System.Web.Mvc;
|
|||
using System.Web.Optimization;
|
||||
using System.Web.Routing;
|
||||
|
||||
namespace LabWeb
|
||||
namespace Microsoft.CodeChallenges.DocumentDB.Lab
|
||||
{
|
||||
public class MvcApplication : HttpApplication
|
||||
{
|
|
@ -13,8 +13,8 @@
|
|||
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>LabWeb</RootNamespace>
|
||||
<AssemblyName>LabWeb</AssemblyName>
|
||||
<RootNamespace>Microsoft.CodeChallenges.DocumentDB.Lab</RootNamespace>
|
||||
<AssemblyName>Microsoft.CodeChallenges.DocumentDB.Lab</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
|
||||
<MvcBuildViews>false</MvcBuildViews>
|
||||
<UseIISExpress>true</UseIISExpress>
|
|
@ -1,4 +1,4 @@
|
|||
namespace LabWeb.Models
|
||||
namespace Microsoft.CodeChallenges.DocumentDB.Lab.Models
|
||||
{
|
||||
public class HomeViewModel
|
||||
{
|
|
@ -1,11 +1,7 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace LabWeb.Models
|
||||
namespace Microsoft.CodeChallenges.DocumentDB.Lab.Models
|
||||
{
|
||||
public class QueryModel
|
||||
{
|
До Ширина: | Высота: | Размер: 1.7 KiB После Ширина: | Высота: | Размер: 1.7 KiB |
До Ширина: | Высота: | Размер: 564 B После Ширина: | Высота: | Размер: 564 B |
До Ширина: | Высота: | Размер: 2.0 KiB После Ширина: | Высота: | Размер: 2.0 KiB |
До Ширина: | Высота: | Размер: 2.2 KiB После Ширина: | Высота: | Размер: 2.2 KiB |
До Ширина: | Высота: | Размер: 2.2 KiB После Ширина: | Высота: | Размер: 2.2 KiB |
До Ширина: | Высота: | Размер: 307 B После Ширина: | Высота: | Размер: 307 B |
До Ширина: | Высота: | Размер: 109 B После Ширина: | Высота: | Размер: 109 B |
До Ширина: | Высота: | Размер: 290 B После Ширина: | Высота: | Размер: 290 B |
До Ширина: | Высота: | Размер: 305 B После Ширина: | Высота: | Размер: 305 B |
|
@ -9,10 +9,11 @@
|
|||
<add key="webpages:Enabled" value="false" />
|
||||
<add key="ClientValidationEnabled" value="true" />
|
||||
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
|
||||
<add key="DocumentDB:Endpoint" value="https://planet-scale-tweets.documents.azure.com:443/" />
|
||||
<add key="DocumentDB:Key" value="oIjI3W3AOUyBtdot75ZPDuPiJ3sCJO4hpVFD8pmBIEZoDN1d18pKXHDqUJPtEe18RA2CN0kVPghLVD5rsNNi5w==" />
|
||||
|
||||
<add key="DocumentDB:Endpoint" value="" />
|
||||
<add key="DocumentDB:Key" value="" />
|
||||
<add key="DocumentDB:DatabaseName" value="tweets" />
|
||||
<add key="DocumentDB:CollectionName" value="Buildv2" />
|
||||
<add key="DocumentDB:CollectionName" value="build" />
|
||||
</appSettings>
|
||||
<connectionStrings />
|
||||
<system.web>
|
До Ширина: | Высота: | Размер: 31 KiB После Ширина: | Высота: | Размер: 31 KiB |
До Ширина: | Высота: | Размер: 106 KiB После Ширина: | Высота: | Размер: 106 KiB |
|
@ -1,39 +0,0 @@
|
|||
var client = await GetReadOnlyClient(locationName);
|
||||
IDocumentQuery<dynamic> docQuery = client.CreateDocumentQuery(collectionUri, query, _feedOptions).AsDocumentQuery();
|
||||
|
||||
SELECT *
|
||||
FROM tweet
|
||||
|
||||
SELECT *
|
||||
FROM twitter
|
||||
|
||||
SELECT CreatedBy
|
||||
FROM tweets
|
||||
|
||||
SELCT tweets.CreatedBy
|
||||
FROM tweets
|
||||
|
||||
|
||||
SELECT *
|
||||
FROM tweets
|
||||
WHERE tweets.CreatedBy.Name = "Matthew Batten"
|
||||
|
||||
SELECT *
|
||||
FROM hashtags IN tweets.Hashtags
|
||||
|
||||
SELECT *
|
||||
FROM hashtags IN tweets.Hashtags
|
||||
WHERE hashtags.text != "Trump"
|
||||
|
||||
SELECT tweets.CreatedBy.Name,
|
||||
tweets.FullText
|
||||
FROM tweet
|
||||
|
||||
Little map of locations and animation
|
||||
|
||||
Show javascipt function and use it in a query.
|
||||
|
||||
Create a deployment markdown.
|
||||
|
||||
#Build2017
|
||||
|
|
@ -1,48 +0,0 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Azure;
|
||||
using Tweetinvi;
|
||||
using Tweetinvi.Models;
|
||||
|
||||
namespace DocDb.Tweets
|
||||
{
|
||||
class Program
|
||||
{
|
||||
private static DocumentDbService _docDbService;
|
||||
|
||||
private static void Main()
|
||||
{
|
||||
Task.WaitAll(Task.Run(async () =>
|
||||
{
|
||||
var credentials = new TwitterCredentials(CloudConfigurationManager.GetSetting("Twitter:ConsumerKey"),
|
||||
CloudConfigurationManager.GetSetting("Twitter:ConsumerSecret"),
|
||||
CloudConfigurationManager.GetSetting("Twitter:AccessToken"),
|
||||
CloudConfigurationManager.GetSetting("Twitter:AccessTokenSecret"));
|
||||
|
||||
_docDbService = new DocumentDbService();
|
||||
await _docDbService.Initalise();
|
||||
|
||||
var stream = Stream.CreateFilteredStream(credentials);
|
||||
|
||||
foreach (var tag in CloudConfigurationManager.GetSetting("Twitter:Tags").Split(','))
|
||||
{
|
||||
stream.AddTrack(tag, async (tweet) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
await _docDbService.UploadDocument(tweet);
|
||||
Console.WriteLine(tweet.FullText);
|
||||
}
|
||||
catch
|
||||
{
|
||||
//Ignore
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
stream.StartStreamMatchingAllConditions();
|
||||
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,9 +1,9 @@
|
|||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio 15
|
||||
VisualStudioVersion = 15.0.26403.7
|
||||
# Visual Studio 14
|
||||
VisualStudioVersion = 14.0.25420.1
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocDb.Tweets", "DocDb.Tweets\DocDb.Tweets.csproj", "{1B287D58-0805-481E-85C6-85E6A109D1D2}"
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CodeChallenges.DocumentDB.TweetSeed", "Microsoft.CodeChallenges.DocumentDB.TweetSeed\Microsoft.CodeChallenges.DocumentDB.TweetSeed.csproj", "{1B287D58-0805-481E-85C6-85E6A109D1D2}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
@ -7,7 +7,7 @@
|
|||
<add key="DocumentDB:Endpoint" value="" />
|
||||
<add key="DocumentDB:Key" value="" />
|
||||
<add key="DocumentDB:DatabaseName" value="tweets" />
|
||||
<add key="DocumentDB:CollectionName" value="Build" />
|
||||
<add key="DocumentDB:CollectionName" value="build" />
|
||||
|
||||
<add key="Twitter:ConsumerKey" value="" />
|
||||
<add key="Twitter:ConsumerSecret" value="" />
|
|
@ -4,7 +4,7 @@ using Microsoft.Azure;
|
|||
using Microsoft.Azure.Documents;
|
||||
using Microsoft.Azure.Documents.Client;
|
||||
|
||||
namespace DocDb.Tweets
|
||||
namespace Microsoft.CodeChallenges.DocumentDB.TweetSeed
|
||||
{
|
||||
public class DocumentDbService
|
||||
{
|
|
@ -6,8 +6,8 @@
|
|||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{1B287D58-0805-481E-85C6-85E6A109D1D2}</ProjectGuid>
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>DocDb.Tweets</RootNamespace>
|
||||
<AssemblyName>DocDb.Tweets</AssemblyName>
|
||||
<RootNamespace>Microsoft.CodeChallenges.DocumentDB.TweetSeed</RootNamespace>
|
||||
<AssemblyName>Microsoft.CodeChallenges.DocumentDB.TweetSeed</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
|
@ -0,0 +1,69 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Azure;
|
||||
using Tweetinvi;
|
||||
using Tweetinvi.Models;
|
||||
|
||||
namespace Microsoft.CodeChallenges.DocumentDB.TweetSeed
|
||||
{
|
||||
class Program
|
||||
{
|
||||
private static DocumentDbService _docDbService;
|
||||
|
||||
private static void Main()
|
||||
{
|
||||
Task.WaitAll(Task.Run(async () =>
|
||||
{
|
||||
var credentials = new TwitterCredentials(CloudConfigurationManager.GetSetting("Twitter:ConsumerKey"),
|
||||
CloudConfigurationManager.GetSetting("Twitter:ConsumerSecret"),
|
||||
CloudConfigurationManager.GetSetting("Twitter:AccessToken"),
|
||||
CloudConfigurationManager.GetSetting("Twitter:AccessTokenSecret"));
|
||||
|
||||
_docDbService = new DocumentDbService();
|
||||
await _docDbService.Initalise();
|
||||
|
||||
var tags = CloudConfigurationManager.GetSetting("Twitter:Tags").Split(',');
|
||||
|
||||
TwitterLiveStream(credentials, tags);
|
||||
//TwitterSearch(credentials, tags);
|
||||
}));
|
||||
}
|
||||
|
||||
private static void TwitterSearch(TwitterCredentials credentials, string[] tags)
|
||||
{
|
||||
Auth.SetCredentials(credentials);
|
||||
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
foreach (var tweet in Search.SearchTweets(tag))
|
||||
{
|
||||
_docDbService.UploadDocument(tweet).ConfigureAwait(false);
|
||||
Console.WriteLine(tweet.FullText);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void TwitterLiveStream(TwitterCredentials credentials, string[] tags)
|
||||
{
|
||||
var stream = Stream.CreateFilteredStream(credentials);
|
||||
|
||||
foreach (var tag in tags)
|
||||
{
|
||||
stream.AddTrack(tag, async (tweet) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
await _docDbService.UploadDocument(tweet);
|
||||
Console.WriteLine(tweet.FullText);
|
||||
}
|
||||
catch
|
||||
{
|
||||
//Ignore
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
stream.StartStreamMatchingAllConditions();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
BUILD Hands-on-labs 2017 (Code challenge lab)
|
||||
=============================================
|
||||
|
||||
Client kick-off meeting notes
|
||||
-----------------------------
|
||||
|
||||
Liam Cavanagh - Azure Search
|
||||
|
||||
15 minute lab
|
||||
Stick to Visual Studio (dev audience)
|
||||
|
||||
|
||||
Azure Search
|
||||
------------
|
||||
|
||||
Same as 2016 lab (which has been copied into code challenges repo)
|
||||
|
||||
Extra features / Changes
|
||||
|
||||
- change auto complete to term suggestion rather than document suggestion
|
||||
- demonstrate synomns functionality by creating a dictionary of words we can use to suggest other terms and highlight these in our results.
|
||||
|
||||
Document DB
|
||||
-----------
|
||||
|
||||
Same as 2016 lab (which has been copied into code challenges repo)
|
||||
|
||||
Extra features / Changes
|
||||
|
||||
- Add Latency record - display how long query took.
|
||||
- Send some warm up queries when the application loads to reduce the latency time recorder
|
||||
- Add region selector
|
||||
- Add webjob to use twitter streaming api to gather tweets about build *need to agree on hashtag* and save them to DocumentDb
|
|
@ -4,8 +4,4 @@
|
|||
|
||||
Please put individual labs into the Labs directory with an appropriate name.
|
||||
|
||||
e.g. Labs/Azure Search
|
||||
|
||||
Any notes about the labs should be placed in the Project Definitions directory.
|
||||
|
||||
e.g. Project Definitions/BUILD Hands-on-labs 2017.md
|
||||
e.g. Labs/Azure Search
|