private static void AddAllTerms(BooleanQuery query, SearchTerms terms)
 {
     foreach (SearchTerm term in terms)
     {
         foreach (var property in FieldTermDetails)
         {
             if (ContainsTerm(term, property.Name))
             {
                 TermQuery termQry = new TermQuery(new Term(address.PropertyName(x => x.AddressLine), term.Term));
                 query.Add(termQry, Occur.SHOULD);
                 break;
             }
         }
         if (term.Length > 1)
         {
             PrefixQuery prefixQry = new PrefixQuery(new Term(address.PropertyName(x => x.AddressLine), term.Term));
             //prefixQry.Boost = containsTerm ? property.Boost / 2 : property.Boost;
             query.Add(prefixQry, Occur.SHOULD);
         }
         if (!term.IsNumeric)
         {
             if (FieldTerms[address.PropertyName(x => x.DeliveryServiceType)].Contains(term.Term))
             {
                 TermQuery termQry = new TermQuery(new Term(address.PropertyName(x => x.DeliveryServiceType), term.Term));
                 termQry.Boost = terms.OriginalSearchTerms.StartsWith("po b", StringComparison.InvariantCultureIgnoreCase) ? 800 : 100;
                 query.Add(termQry, Occur.SHOULD);
             }
             if (!terms.OriginalSearchTerms.StartsWith("po b", StringComparison.InvariantCultureIgnoreCase))
             {
                 bool containstStreetName = FieldTerms[address.PropertyName(x => x.StreetName)].Contains(term.Term);
                 if (containstStreetName)
                 {
                     TermQuery termQry = new TermQuery(new Term(address.PropertyName(x => x.StreetName), term.Term));
                     termQry.Boost = 100;
                     query.Add(termQry, Occur.SHOULD);
                 }
                 if (term.Length > 1 && FieldTerms[address.PropertyName(x => x.StreetName)].Where(s => s.StartsWith(term.Term)).Any())
                 {
                     PrefixQuery prefixQry = new PrefixQuery(new Term(address.PropertyName(x => x.StreetName), term.Term));
                     prefixQry.Boost = containstStreetName ? 50 : 100;
                     query.Add(prefixQry, Occur.SHOULD);
                 }
             }
         }
         else if (term.IsNumeric)
         {
             bool containstStreetNumber = FieldTerms[address.PropertyName(x => x.StreetNumber)].Contains(term.Term);
             if (containstStreetNumber)
             {
                 TermQuery termQry = new TermQuery(new Term(address.PropertyName(x => x.StreetNumber), term.Term));
                 termQry.Boost = 100;
                 query.Add(termQry, Occur.SHOULD);
             }
             bool containstUnitId = FieldTerms[address.PropertyName(x => x.UnitId)].Contains(term.Term);
             if (containstUnitId)
             {
                 TermQuery termQry = new TermQuery(new Term(address.PropertyName(x => x.UnitId), term.Term));
                 termQry.Boost = 10;
                 query.Add(termQry, Occur.SHOULD);
             }
         }
     }
 }
 public AddressSearchQuery(string queryString)
 {
     QueryString = queryString;
     SearchTerms = new SearchTerms(queryString);
 }
Esempio n. 3
0
        public async Task <ActionResult> FindBusinesses(SearchTerms searchTerms)

        {
            var allTerms = string.Join("+", searchTerms.Terms);

            ViewBag.Title = "Search Results";
            var client = new HttpClient();
        public HighlightViewModel()
        {
            WillHighlight = Settings.Default.WillHighlight;

            foreach (var term in Settings.Default.SearchTerms)
            {
                SearchTerms.Add(term);
            }
        }
Esempio n. 5
0
        public int loadTemplateAndLines(ge_data data_file,
                                        ge_search template,
                                        string table,
                                        string sheet,
                                        IDataService _dataService,
                                        out ge_search template_loaded,
                                        out string[] lines)
        {
            lines           = null;
            template_loaded = null;

            if (data_file.fileext == ".csv")
            {
                var resp = _dataService.GetFileAsLines(data_file.Id);
                lines = (string[])resp.Result;
                SearchTerms st = new SearchTerms();
                template_loaded = st.findSearchTerms(template, table, lines);
                if (template_loaded.search_tables.Count == 0)
                {
                    return(-1);
                }
            }

            if (data_file.fileext == ".xlsx")
            {
                var resp = _dataService.GetFileAsMemoryStream(data_file.Id);
                using (MemoryStream ms = (MemoryStream)resp.Result) {
                    ge_log_workbook wb = new ge_log_workbook(ms);

                    SearchTerms st = new SearchTerms();
                    if (sheet.Contains(","))
                    {
                        string[] sheets = sheet.Split(",");
                        template_loaded = st.findSearchTerms(template, table, wb, sheets);
                    }
                    else
                    {
                        template_loaded = st.findSearchTerms(template, table, wb, sheet);
                    }

                    if (template_loaded.search_tables.Count == 0)
                    {
                        lines = null;
                        return(-1);
                    }

                    wb.setWorksheet(template_loaded.search_tables[0].sheet);
                    wb.evaluateSheet();
                    lines = wb.WorksheetToTable(50, true);
                    wb.close();

                    return(1);
                }
            }

            return(-1);
        }
Esempio n. 6
0
        public async Task <ge_log_file> NewFile(Guid Id, Guid templateId, string table, string sheet, IDataService _dataService)
        {
            string[]  lines           = null;
            ge_search template_loaded = null;

            ge_search template = await _dataService.GetFileAsClass <ge_search>(templateId);

            ge_data data_file = await _dataService.GetDataById(Id);

            if (data_file.fileext == ".csv")
            {
                lines = await _dataService.GetFileAsLines(data_file.Id);

                SearchTerms st = new SearchTerms();
                template_loaded = st.findSearchTerms(template, table, lines);
                if (template_loaded.search_tables.Count == 0)
                {
                    return(null);
                }
            }

            if (data_file.fileext == ".xlsx")
            {
                using (MemoryStream ms = await _dataService.GetFileAsMemoryStream(data_file.Id)) {
                    ge_log_workbook wb = new ge_log_workbook(ms);
                    SearchTerms     st = new SearchTerms();
                    if (sheet.Contains(","))
                    {
                        string[] sheets = sheet.Split(",");
                        template_loaded = st.findSearchTerms(template, table, wb, sheets);
                    }
                    else
                    {
                        template_loaded = st.findSearchTerms(template, table, wb, sheet);
                    }

                    if (template_loaded.search_tables.Count == 0)
                    {
                        return(null);
                    }

                    wb.setWorksheet(template_loaded.search_tables[0].sheet);
                    wb.evaluateSheet();
                    lines = wb.WorksheetToTable();
                    wb.close();
                }
            }

            return(NewFile(template_loaded,
                           lines,
                           Id,
                           templateId));
        }
Esempio n. 7
0
        public IEnumerable <SearchResult> ExecuteSearch(string[] terms, params string[] indexes)
        {
            var searchTerms = SearchTerms.Parse(terms);

            foreach (var index in GetIndexes(indexes))
            {
                var searchBuilder = CreateSearchBuilder(index, searchTerms.PositiveTerms, searchTerms.NegativeTerms);
                yield return(new SearchResult {
                    Terms = searchTerms.PositiveTerms,
                    Documents = searchBuilder.Search().Select(DocumentIndexDto.Map).ToArray()
                });
            }
        }
Esempio n. 8
0
        private bool DoesItemHaveSearchTerms(IOrderItem item)
        {
            string[] terms      = SearchTerms.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            string   itemString = item.DisplayName + " " + item.Description;

            foreach (string term in terms)
            {
                if (!itemString.Contains(term, StringComparison.InvariantCultureIgnoreCase))
                {
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 9
0
        public IEnumerable <SearchStatistic> GetStatistics(string[] terms, params string[] indexes)
        {
            var searchTerms = SearchTerms.Parse(terms);

            foreach (var index in GetIndexes(indexes))
            {
                var searchBuilder = CreateSearchBuilder(index, searchTerms.PositiveTerms, searchTerms.NegativeTerms);
                yield return(new SearchStatistic {
                    IndexName = index.Name,
                    TotalDocuments = index.TotalDocuments(),
                    TotalDocumentsFound = searchBuilder.Count()
                });
            }
        }
Esempio n. 10
0
        public string CreateFindBuisnessUrl(SearchTerms searchTerms)
        {
            List <string> searchTermWordList = new List <string>();

            for (int i = 0; i < searchTerms.Terms.Length; i++)
            {
                var iD        = searchTerms.Terms[i];
                var dataInput = _context.Categories.First(t => t.ID == iD);
                searchTermWordList.Add(dataInput.SearchTerm);
            }

            var allTerms = string.Join("+", searchTermWordList);
            var url      = $"https://api.yelp.com/v3/businesses/search?term={allTerms}&location={searchTerms.City}-{searchTerms.State}&price={searchTerms.Price}";

            return(url);
        }
Esempio n. 11
0
 public void OnGet()
 {
     Items = Menu.FullMenu();
     if (SearchTerms != null)
     {
         string[] multipleTerms = SearchTerms.Split(" ");
         Items = Items.Where(item =>
         {
             foreach (string term in multipleTerms)
             {
                 if (item.ToString().Contains(term, StringComparison.InvariantCultureIgnoreCase))
                 {
                     return(true);
                 }
                 if (item.Description.Contains(term, StringComparison.InvariantCultureIgnoreCase))
                 {
                     return(true);
                 }
             }
             return(false);
         });
     }
     if (ItemCategory != null && ItemCategory.Length != 0)
     {
         Items = from item in Items
                 where item.ItemCategory != null && ItemCategory.Contains(item.ItemCategory)
                 select item;
     }
     if (CaloriesMin != null && CaloriesMax != null)
     {
         Items = from item in Items
                 where item.Calories >= CaloriesMin && item.Calories <= CaloriesMax
                 select item;
     }
     if (PriceMin != null && PriceMax != null)
     {
         Items = from item in Items
                 where item.Price >= PriceMin && item.Price <= PriceMax
                 select item;
     }
     //Items = Search(SearchTerms);
     //Items = FilterByCategory(Items, ItemCategory);
     //Items = FilterByCalories(Items, CaloriesMin, CaloriesMax);
     //Items = FilterByPrice(Items, PriceMin, PriceMax);
 }
Esempio n. 12
0
        public async Task SaveEventToSoup(string searchTerm)
        {
            await Task.Factory.StartNew(() =>
            {
                // ReSharper disable once ConditionIsAlwaysTrueOrFalse
                if (!SfdcConfig.CollectSearchTerms)
                {
                    return;
                }

                var store = SmartStore.GetGlobalSmartStore();
                SetupSoupIfNotExistsNeeded(store, SoupName);

                var date             = new DateTime(DateTime.UtcNow.Year, DateTime.UtcNow.Month, 1, 0, 0, 0, DateTimeKind.Utc);
                var searchTermRecord = new SearchTerms
                {
                    SearchTerm     = searchTerm,
                    SearchTermDate = date,
                    Count          = 1
                };

                var record = JObject.FromObject(searchTermRecord, JsonSerializer.Create(CustomJsonSerializerSettings.Instance.Settings));

                var info = searchTermRecord.GetType().GetTypeInfo().GetCustomAttributes()
                           .SingleOrDefault(t => t is JsonObjectAttribute) as JsonObjectAttribute;

                if (info != null)
                {
                    record[Constants.SobjectType] = string.Format(info.Title, SfdcConfig.CustomerPrefix);
                }

                record[SyncManager.Local]          = true;
                record[SyncManager.LocallyCreated] = true;
                record[SyncManager.LocallyUpdated] = false;
                record[SyncManager.LocallyUpdated] = false;
                record[Constants.Id] = Guid.NewGuid();
                store.Upsert(SoupName, record, Constants.Id, false);

                //SyncUpEvents();
            });
        }
Esempio n. 13
0
 public void TestAddress_Distinct_88()
 {
     SearchTerms terms = new SearchTerms("8/8 Danville");
     Assert.AreEqual(2, terms.Count);
 }
        public List <string> CollectSearchQueries()
        {
            var result = new List <string>();

            SearchBaseUrls.ToList().ForEach(x => SearchTerms.ForEach(k => result.Add(String.Format("{0}/jobs?searchTerm={1}", x, System.Web.HttpUtility.UrlEncode(k)))));
            return(result);
        }
Esempio n. 15
-1
 public void TestAddress_4_29Waiapu_Road_Kelburn()
 {
     SearchTerms terms = new SearchTerms("4/29 Waiapu Road, Kelburn, Wellington 6012");
     Assert.AreEqual(7, terms.Count);
 }