/// <summary>
        /// Verify that the request sent to ES for a single term is being set up correctly.
        /// </summary>
        public void Check_For_Correct_Request_Data()
        {
            string term = "Breast Cancer";

            ISearchTemplateRequest actualReq = null;

            //Setup the client with the request handler callback to be executed later.
            IElasticClient client =
                ElasticTools.GetMockedSearchTemplateClient <Suggestion>(
                    req => actualReq = req,
                    resMock => {
                //Make sure we say that the response is valid.
                resMock.Setup(res => res.IsValid).Returns(true);
            }         // We don't care what the response looks like.
                    );

            IOptions <AutosuggestIndexOptions> config = GetMockedAutosuggestIndexOptions();
            AutosuggestController controller          = new AutosuggestController(
                client,
                config,
                NullLogger <AutosuggestController> .Instance
                );

            //NOTE: this is when actualReq will get set.
            controller.Get(
                "cgov",
                "en",
                term
                );

            SearchTemplateRequest <Suggestion> expReq = GetSearchRequest <Suggestion>(
                "cgov",                   // Search index to look in.
                "autosg_suggest_cgov_en", // Template name, preceded by the name of the directory it's stored in.
                term,                     // Search term
                10,                       // Max number of records to retrieve.
                "\"url\", \"title\", \"metatag.description\", \"metatag.dcterms.type\"",
                "all"
                );

            Assert.Equal(
                expReq,
                actualReq,
                new ElasticTools.SearchTemplateRequestComparer()
                );
        }
		public void SearchTemplateByQuery_ObjectInitializer()
		{
			var request = new SearchTemplateRequest
			{
				Template = _template,
				Params = new Dictionary<string, object>
				{
					{ "my_from", 0 },
					{ "my_size", 5 },
					{ "my_field", "name" },
					{ "my_value", "em-elasticsearch" }
				}
			};

			var result = this.Client.SearchTemplate<ElasticsearchProject>(request);

			result.IsValid.Should().BeTrue();
			result.Hits.Count().Should().BeGreaterThan(0);
		}
        public void SearchTemplateByQuery_ObjectInitializer()
        {
            var request = new SearchTemplateRequest
            {
                Template = _template,
                Params   = new Dictionary <string, object>
                {
                    { "my_from", 0 },
                    { "my_size", 5 },
                    { "my_field", "name" },
                    { "my_value", "em-elasticsearch" }
                }
            };

            var result = this.Client.SearchTemplate <ElasticsearchProject>(request);

            result.IsValid.Should().BeTrue();
            result.Hits.Count().Should().BeGreaterThan(0);
        }
        /// <summary>
        /// Helper method to build a SearchTemplateRequest for testing purposes.
        /// </summary>
        /// <param name="index">The index to fetch from</param>
        /// <param name="fileName">The template fileName to use</param>
        /// <param name="term">The search term we are looking for</param>
        /// <param name="size">The result set size</param>
        /// <param name="fields">The fields we are requesting</param>
        /// <param name="site">The sites to filter the results by</param>
        /// <returns>A SearchTemplateRequest</returns>
        private SearchTemplateRequest <T> GetSearchRequest <T>(
            string index,
            string fileName,
            string term,
            int size,
            string fields,
            string site
            ) where T : class
        {
            SearchTemplateRequest <T> expReq = new SearchTemplateRequest <T>(index)
            {
                File = fileName
            };

            expReq.Params = new Dictionary <string, object>();
            expReq.Params.Add("searchstring", term);
            expReq.Params.Add("my_size", size);

            return(expReq);
        }
예제 #5
0
        /// <summary>
        /// Helper method to build a SearchTemplateRequest in a more compact manner
        /// </summary>
        /// <param name="index">The index to fetch from</param>
        /// <param name="file">The template file to use</param>
        /// <param name="term">The search term we are looking for</param>
        /// <param name="size">The result set size</param>
        /// <param name="from">Where to start the results from</param>
        /// <param name="fields">The fields we are requesting</param>
        /// <param name="site">The sites to filter the results by</param>
        /// <returns>A SearchTemplateRequest</returns>
        private SearchTemplateRequest <SiteWideSearchResult> GetSearchRequest(
            string index,
            string file,
            string term,
            int size,
            int from,
            string fields,
            string site
            )
        {
            SearchTemplateRequest <SiteWideSearchResult> expReq = new SearchTemplateRequest <SiteWideSearchResult>(index)
            {
                File = file
            };

            expReq.Params = new Dictionary <string, object>();
            expReq.Params.Add("my_value", term);
            expReq.Params.Add("my_size", size);
            expReq.Params.Add("my_from", from);
            expReq.Params.Add("my_fields", fields);
            expReq.Params.Add("my_site", site);

            return(expReq);
        }