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); }
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); } }
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); }
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)); }
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() }); } }
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); }
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() }); } }
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); }
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); }
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(); }); }
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); }
public void TestAddress_4_29Waiapu_Road_Kelburn() { SearchTerms terms = new SearchTerms("4/29 Waiapu Road, Kelburn, Wellington 6012"); Assert.AreEqual(7, terms.Count); }