public void Searcher_When_SearcherWarmedUp_SearchIsFaster() { // Arrange var stopwatch = new Stopwatch(); var indexsource = new FeedsDbContextIndexSource(new FeedsDbEntities(), 100); var searcher = new Searcher<Document>(indexsource); // Act stopwatch.Start(); var results = searcher.Search("net").ToList(); stopwatch.Stop(); var elapsed = stopwatch.ElapsedMilliseconds; stopwatch.Reset(); Debug.WriteLine(elapsed); stopwatch.Start(); results = searcher.Search("net").ToList(); stopwatch.Stop(); var elapsed2 = stopwatch.ElapsedMilliseconds; Debug.WriteLine(elapsed2); // Assert Assert.IsTrue(elapsed2 < elapsed); }
public void TestFilterFile_IsHidden_False() { var settings = GetSettings(); var searcher = new Searcher(settings); var file = new FileInfo(".gitignore"); Assert.False(searcher.FilterFile(file)); }
public void TestFilterFile_ArchiveNoSearchArchives_False() { var settings = GetSettings(); var searcher = new Searcher(settings); var file = new FileInfo("archive.zip"); Assert.False(searcher.FilterFile(file)); }
private void SearchIndex() { if (this._searchterm.Length > 0) { try { Searcher sr = new Searcher(this._indexConfigNodes[0]); sr.search(this._searchterm, 0); if (sr.ResultTable.Rows.Count > 0) { this.ResultList = new List<SearchResult>(sr.ResultTable.Rows.Count); for (int i = 0; i < sr.ResultTable.Rows.Count; i++) { SearchResult result = new SearchResult(sr.ResultTable.Rows[i][0].ToString(), sr.ResultTable.Rows[i][1].ToString(), sr.ResultTable.Rows[i][2].ToString()); try { DateTime dateStr = DateTime.Parse(sr.ResultTable.Rows[i][0].ToString()); result.SortField = dateStr.Date.Year.ToString().Substring(2) + dateStr.Month.ToString("d2") + dateStr.Day.ToString("d2"); } catch { result.SortField = result.Title; } this.ResultList.Add(result); } this.ResultList = ResultList.OrderBy(o => o.SortField).ToList(); } } catch { } } }
void decoder_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { if (++x < 4) return; SearchButton.IsEnabled = true; d = new Dictionary("cedict_ts.u8"); s = new Searcher(d, new Index("english.csv"), new Index("pinyin.csv"), new Index("hanzi.csv")); }
private void button2_Click(object sender, EventArgs e) { string path = Application.StartupPath + "\\empty.html"; if (!System.IO.File.Exists(path)) { System.IO.File.Create(path); } webBrowser1.Url = new Uri("file:///" + path); listBox1.Items.Clear(); label1.Text = "Searching..."; if (isearcher == null) isearcher = new Searcher(_indexTarget); if (isearcher == null) { MessageBox.Show("===> Can't create searcher!"); return; } results = isearcher.FastSearch(textBox2.Text); label1.Text = results.Length.ToString() + " hit(s)."; foreach (SearchResult result in results) { listBox1.Items.Add(result.GetDocProperty("pid") + ", " + result.GetDocProperty("sid") + ", " + result.GetDocProperty("ayatno")); } }
public static int Main(string[] args) { // Is Beagle up? DaemonInformationRequest infoReq = new DaemonInformationRequest(); try { infoReq.Send(); } catch { Console.Error.WriteLine("Error: beagled does not appear to be running"); return -1; } Bus bus = Bus.Session; ObjectPath opath = new ObjectPath("/org/freedesktop/xesam/searcher/main"); string service = "org.freedesktop.xesam.searcher"; Searcher search = new Searcher(); bus.Register(service, opath, search); RequestNameReply nameReply = bus.RequestName(service); System.Threading.Thread t = new System.Threading.Thread(BusIterate); t.Start(); MainLoop ml = new MainLoop(); ml.Run(); return 0; }
public void LogErrorToJsonInputAsync() { var textInput = "e6d64ac2-c8e9-45e0-ac73-3298ff8cb96f"; LogglyConfiguration.Configure(c => c.AuthenticateWith("csharptests", "Passw0rd!")); var logger = new Logger(textInput); var randomString = GenerateRandomString(8); logger.LogError(randomString, new InvalidOperationException("oops" + randomString + " something went wrong")); var signal = new AutoResetEvent(false); SearchJsonResponse response = null; new Thread(() => { var running = true; while (running) { Thread.Sleep(3000); response = new Searcher("csharptests").SearchJson("exception", "oops" + randomString); if (response.TotalRecords > 0) running = false; } signal.Set(); }).Start(); signal.WaitOne(50 * 1000); // wait till loggly index the new event (if it didn't after 50 seconds it is broken) Assert.IsNotNull(response); Assert.AreEqual(1, response.TotalRecords); Assert.AreEqual(randomString, response.Results[0].Json["message"]); Assert.AreEqual("error", response.Results[0].Json["category"]); Assert.AreEqual("System.InvalidOperationException: oops" + randomString + " something went wrong", response.Results[0].Json["exception"]); }
/// <summary> /// 构造函数 /// </summary> /// <param name="searcher">该字段所在的查询对象</param> /// <param name="columnName">字段名称</param> public SearchColumn(Searcher searcher, string columnName) { this.sortOrder = SortOrder.None; this.sortIndex = 1; this.columnName = columnName; this.currentSearcher = searcher; }
static void ShowWindow() { Searcher searcher = new Searcher(); searcher.search(Application.dataPath); //searcher.search("D:/uniworlds/svn/Caravan/project/caravan/Assets/Resources/models/enviroment/"); searcher.printResult(); }
public Medidas(TopDocs hits, Searcher searcher, List<int> docs) { this.qtdDocsRelevantesRetornados = DocsRelevantesRecuperados(hits, searcher, docs); this.precisao = _Precisao(hits.ScoreDocs.Length); this.cobetura = _Cobertura(docs.Count); this.fmeasure = _FMeasure(); }
public void StartSearch(INavigateToCallback callback, string searchValue) { this.StopSearch(); if (string.IsNullOrWhiteSpace(searchValue)) { callback.Done(); return; } var optionsService = _optionsServices.Length > 0 ? VersionSelector.SelectHighest(_optionsServices) : null; var searchCurrentDocument = optionsService?.GetSearchCurrentDocument(callback.Options) ?? false; var searcher = new Searcher( _workspace.CurrentSolution, _asyncListener, _displayFactory, callback, searchValue, searchCurrentDocument, _cancellationTokenSource.Token); searcher.Search(); }
public void Test_ArrayDontContainsItem() { Searcher<int> s = new Searcher<int>(new int[] {6, 2, 4, 1, 8, 3}); Func<int, int, int> comparator = (x, y) => x.CompareTo(y); Assert.IsTrue(s.Search(0, 6, 9, comparator) == -1); Assert.IsTrue(s.Search(0, 6, 10, comparator) == -1); }
public void TestFilterFile_ArchiveSearchArchives_True() { var settings = GetSettings(); settings.SearchArchives = true; var searcher = new Searcher(settings); var file = new FileInfo("archive.zip"); Assert.True(searcher.FilterFile(file)); }
public void TestFilterFile_ArchiveFileArchivesOnly_True() { var settings = GetSettings(); settings.ArchivesOnly = true; var searcher = new Searcher(settings); var file = new FileInfo("archive.zip"); Assert.False(searcher.FilterFile(file)); }
public void TestFilterFile_IsHiddenIncludeHidden_True() { var settings = GetSettings(); settings.ExcludeHidden = false; var searcher = new Searcher(settings); var file = new FileInfo(".gitignore"); Assert.True(searcher.FilterFile(file)); }
/// <summary> /// Initializes a new instance of the <see cref="SearchResults" /> class. /// </summary> /// <param name="searcher">The searcher.</param> /// <param name="reader">The reader.</param> /// <param name="docs">The hits.</param> /// <param name="criteria">The criteria.</param> /// <param name="query">The query.</param> public LuceneSearchResults( Searcher searcher, IndexReader reader, TopDocs docs, ISearchCriteria criteria, Query query) { Results = new SearchResults(criteria, null); CreateDocuments(searcher, docs); CreateFacets(reader, query); CreateSuggestions(reader, criteria); }
public void TestFilterFile_IsArchiveSearchFile_True() { var settings = GetSettings(); settings.SearchArchives = true; settings.AddInArchiveExtension("zip"); var searcher = new Searcher(settings); var file = new FileInfo("archive.zip"); Assert.True(searcher.FilterFile(file)); }
public static int Search(object[] ar, object key, Searcher s) { for (int i = 0; i < ar.Length; i++) { if (s(ar[i], key)) return i; } return -1; }
/// <summary> /// Opens or creates an index at the specified location /// </summary> /// <param name="path">The index path</param> private Index(string path) { this.path = path; Utility.EnsureIndex(this.path); this.searcher = new Searcher(this); this.writer = new Writer(this); this.writer.Changed += FireChanged; this.schemaManager = new SchemaManager(this); }
void Start() { rb = GetComponent<Rigidbody2D> (); rb.freezeRotation = true; isFacingRight = true; myScale = transform.localScale; searchScript = gameObject.GetComponent<Searcher> (); }
public MainWindow() { // init the controller before the gui statrs int cache_size = 100 * 1000; int heap_size = 50; ctrl = new Controller(cache_size, heap_size); InitializeComponent(); srch = new Searcher(); }
public SpanWeight(SpanQuery query, Searcher searcher) { this.similarity = query.GetSimilarity(searcher); this.internalQuery = query; terms = Lucene.Net.Support.Compatibility.SetFactory.CreateHashSet<Term>(); query.ExtractTerms(terms); idfExp = similarity.IdfExplain(terms, searcher); idf = idfExp.Idf; }
public string GetHighlight(string value, string highlightField, Searcher searcher, string luceneRawQuery) { var query = GetQueryParser(highlightField).Parse(luceneRawQuery); var scorer = new QueryScorer(searcher.Rewrite(query)); var highlighter = new Highlighter(HighlightFormatter, scorer); var tokenStream = HighlightAnalyzer.TokenStream(highlightField, new StringReader(value)); string bestFragments = highlighter.GetBestFragments(tokenStream, value, MaxNumHighlights, Separator); return bestFragments; }
/// <summary> /// Creates a SearchTimer. /// </summary> /// <param name="owningControl">This control's cursor will be changed to WaitCursor while searching.</param> /// <param name="interval">Number of milliseconds to pause after user input before starting a search.</param> /// <param name="searcher">The delegate that will do the searching.</param> public SearchTimer(Control owningControl, int interval, Searcher searcher) { if (owningControl == null) throw new ArgumentNullException("owningControl"); if (searcher == null) throw new ArgumentNullException("searcher"); m_timer = new Timer(); m_owningControl = owningControl; m_interval = interval; m_searcher = searcher; }
public void SearcherStringTest() { var testData = searchText; var findStrs = findStrings; var caseSearcher = new Searcher(findStrs, true); var ignoreCaseSearcher = new Searcher(findStrs); Assert.AreEqual(caseSearcher.MaxLen, 3); Assert.AreEqual(ignoreCaseSearcher.MaxLen, 3); var caseResults = caseSearcher.Find(testData); var ignoreCaseResults = ignoreCaseSearcher.Find(testData); VerifyResults(caseResults, ignoreCaseResults); }
public void SearcherCharArrayTest() { var testData = searchText.ToCharArray(); var findStrs = findStrings.Select(str => str.ToCharArray()).ToList(); var caseSearcher = new Searcher(findStrs, true); var ignoreCaseSearcher = new Searcher(findStrs); Assert.AreEqual(caseSearcher.MaxLen, 3); Assert.AreEqual(ignoreCaseSearcher.MaxLen, 3); var caseResults = caseSearcher.Find(testData); var ignoreCaseResults = ignoreCaseSearcher.Find(testData); VerifyResults(caseResults, ignoreCaseResults); }
public void SearcherByteTest() { var testData = Encoding.UTF8.GetBytes(searchText); var findStrs = findStrings.Select(str => Encoding.UTF8.GetBytes(str)).ToList(); var caseSearcher = new Searcher(findStrs, true); var ignoreCaseSearcher = new Searcher(findStrs); Assert.AreEqual(caseSearcher.MaxLen, 3); Assert.AreEqual(ignoreCaseSearcher.MaxLen, 3); var caseResults = caseSearcher.Find(testData); var ignoreCaseResults = ignoreCaseSearcher.Find(testData); VerifyResults(caseResults, ignoreCaseResults); }
public void Searcher_When_Searched_ReturnsDocuments() { // Arrange var indexsource = new FeedsDbContextIndexSource(new FeedsDbEntities(), 100); var searcher = new Searcher<Document>(indexsource); // Act var results = searcher.Search("net").ToList(); // Assert Assert.IsTrue(results.Any()); }
public void GetsTheResponse() { string responseJson = "{\"rsid\": {\"status\": \"SCHEDULED\",\"date_from\": 1379706043000,\"elapsed_time\": 0.017975807189941406,\"date_to\": 1380570043000, \"id\": \"1910175565\"} }"; Server.Stub(new ApiExpectation { Response = responseJson }); var r = new Searcher("mogade").Search("anything"); Assert.IsNotNull(r); Assert.IsNotNull(r.RSID); Assert.AreEqual("SCHEDULED", r.RSID.Status); Assert.AreEqual(1379706043000, r.RSID.From); Assert.AreEqual(0.017975807189941406, r.RSID.ElapsedTime); Assert.AreEqual(1380570043000, r.RSID.To); Assert.AreEqual("1910175565", r.RSID.Id); }
void AddDropdownCallbackDelegate(Rect buttonRect, ReorderableList list) { var databases = new[] { TypeSearcherDatabase.GetBuildStepsDatabase( new HashSet <Type>(BuildStep.GetAvailableTypes(type => !IsShown(type))), GetDisplayName), }; var searcher = new Searcher( databases, new AddTypeSearcherAdapter("Add Build Step")); var editorWindow = EditorWindow.focusedWindow; SearcherWindow.Show( editorWindow, searcher, AddStep, buttonRect.min + Vector2.up * 35.0f, a => { }, new SearcherWindow.Alignment(SearcherWindow.Alignment.Vertical.Top, SearcherWindow.Alignment.Horizontal.Left) ); }
public ActionResult Search(string de, string a, int?count, string key) { Response.AppendHeader("Access-Control-Allow-Origin", "*"); try { var error = DataHandler.ChargeServiceCall("/Service/Search", key, Request.UserHostAddress, de + "|" + a + "|" + count); if (error == null) { int c = count ?? 1; if (c > 5) { c = 5; } if (c < 1) { c = 1; } SearchResultModel model = new SearchResultModel(); Searcher searcher = new Searcher(ViaDFGraph.Instance); SearchPosition spFrom = SearchPosition.CreateSearchPosition(de, null); SearchPosition spTo = SearchPosition.CreateSearchPosition(a, null); if (spFrom != null && spTo != null) { SearchParams sp = new SearchParams(); sp.StartSearch = spFrom; sp.StartSearch.LoadNameFromDB(); sp.EndSearch = spTo; sp.EndSearch.LoadNameFromDB(); sp.NrOfResults = c; DataHandler.LogSearch(sp, Request.UserHostAddress); List <SearchResult> results = searcher.DoSearch(sp); model.Results = results; } else { model.Results = new List <SearchResult>(); } using (var stream = new MemoryStream()) { new DataContractJsonSerializer(typeof(SearchResultModel)).WriteObject(stream, model); return(Content(Encoding.UTF8.GetString(stream.ToArray()), "application/json", Encoding.UTF8)); } } else { return(Json(new { error = error }, JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { DataHandler.WriteException(ex, Request.UserHostAddress); return(Json(new { error = "Internal server error" }, JsonRequestBehavior.AllowGet)); } }
public string SearchForIndex_CorrectParamsStringIncreasingArr_ExpectedResult(string[] arr, string value) { return(Searcher.SearchForIndex <string>(arr, value)); }
/// <summary> /// Creates graph from the given items. /// Contains implementation of INSERT(hnsw, q, M, Mmax, efConstruction, mL) algorithm. /// Article: Section 4. Algorithm 1. /// </summary> /// <param name="items">The items to insert.</param> /// <param name="generator">The random number generator to distribute nodes across layers.</param> internal void Build(IReadOnlyList <TItem> items, Random generator) { if (!items?.Any() ?? false) { return; } var core = new Core(this.distance, this.Parameters, items); core.AllocateNodes(generator); var entryPoint = core.Nodes[0]; var searcher = new Searcher(core); Func <int, int, TDistance> nodeDistance = core.GetDistance; var neighboursIdsBuffer = new List <int>(core.Algorithm.GetM(0) + 1); for (int nodeId = 1; nodeId < core.Nodes.Count; ++nodeId) { using (new ScopeLatencyTracker(GraphBuildEventSource.Instance?.GraphInsertNodeLatencyReporter)) { /* * W ← ∅ // list for the currently found nearest elements * ep ← get enter point for hnsw * L ← level of ep // top layer for hnsw * l ← ⌊-ln(unif(0..1))∙mL⌋ // new element’s level * for lc ← L … l+1 * W ← SEARCH-LAYER(q, ep, ef=1, lc) * ep ← get the nearest element from W to q * for lc ← min(L, l) … 0 * W ← SEARCH-LAYER(q, ep, efConstruction, lc) * neighbors ← SELECT-NEIGHBORS(q, W, M, lc) // alg. 3 or alg. 4 * for each e ∈ neighbors // shrink connections if needed * eConn ← neighbourhood(e) at layer lc * if │eConn│ > Mmax // shrink connections of e if lc = 0 then Mmax = Mmax0 * eNewConn ← SELECT-NEIGHBORS(e, eConn, Mmax, lc) // alg. 3 or alg. 4 * set neighbourhood(e) at layer lc to eNewConn * ep ← W * if l > L * set enter point for hnsw to q */ // zoom in and find the best peer on the same level as newNode var bestPeer = entryPoint; var currentNode = core.Nodes[nodeId]; var currentNodeTravelingCosts = new TravelingCosts <int, TDistance>(nodeDistance, nodeId); for (int layer = bestPeer.MaxLayer; layer > currentNode.MaxLayer; --layer) { searcher.RunKnnAtLayer(bestPeer.Id, currentNodeTravelingCosts, neighboursIdsBuffer, layer, 1); bestPeer = core.Nodes[neighboursIdsBuffer[0]]; neighboursIdsBuffer.Clear(); } // connecting new node to the small world for (int layer = Math.Min(currentNode.MaxLayer, entryPoint.MaxLayer); layer >= 0; --layer) { searcher.RunKnnAtLayer(bestPeer.Id, currentNodeTravelingCosts, neighboursIdsBuffer, layer, this.Parameters.ConstructionPruning); var bestNeighboursIds = core.Algorithm.SelectBestForConnecting(neighboursIdsBuffer, currentNodeTravelingCosts, layer); for (int i = 0; i < bestNeighboursIds.Count; ++i) { int newNeighbourId = bestNeighboursIds[i]; core.Algorithm.Connect(currentNode, core.Nodes[newNeighbourId], layer); core.Algorithm.Connect(core.Nodes[newNeighbourId], currentNode, layer); // if distance from newNode to newNeighbour is better than to bestPeer => update bestPeer if (DistanceUtils.Lt(currentNodeTravelingCosts.From(newNeighbourId), currentNodeTravelingCosts.From(bestPeer.Id))) { bestPeer = core.Nodes[newNeighbourId]; } } neighboursIdsBuffer.Clear(); } // zoom out to the highest level if (currentNode.MaxLayer > entryPoint.MaxLayer) { entryPoint = currentNode; } // report distance cache hit rate GraphBuildEventSource.Instance?.CoreGetDistanceCacheHitRateReporter?.Invoke(core.DistanceCacheHitRate); } } // construction is done this.core = core; this.entryPoint = entryPoint; }
public InQueryWeight(InQuery parent, Searcher searcher) { _parent = parent; _searcher = searcher; }
private void CreateIndexer() { _searcher = new IndexSearcher(_reader); }
public override Weight CreateWeight(Searcher searcher) { return(new PayloadTermWeight(this, this, searcher)); }
private void ButtonRun_Click(object sender, EventArgs e) { if (Searcher.IsBusy) { if (MessageBox.Show("検索を中止しますか?", "検索中です", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { Searcher.CancelAsync(); } return; } RecordView.Rows.Clear(); var row = new DataGridViewRow(); row.CreateCells(RecordView); var args = new SearchArgument(); args.ShipName = (string)ShipName.SelectedItem; args.ItemName = (string)ItemName.SelectedItem; args.EquipmentName = (string)EquipmentName.SelectedItem; args.DateBegin = DateBegin.Value; args.DateEnd = DateEnd.Value; args.MapAreaID = (int)MapAreaID.SelectedValue; args.MapInfoID = (int)MapInfoID.SelectedValue; args.MapCellID = (int)MapCellID.SelectedValue; args.MapDifficulty = (int)MapDifficulty.SelectedValue; args.IsBossOnly = IsBossOnly.CheckState; args.RankS = RankS.Checked; args.RankA = RankA.Checked; args.RankB = RankB.Checked; args.RankX = RankX.Checked; args.MergeRows = MergeRows.Checked; args.BaseRow = row; RecordView.Tag = args; // column initialize if (MergeRows.Checked) { RecordView_Name.DisplayIndex = 0; RecordView_Header.HeaderText = "回数"; RecordView_Header.Width = 100; RecordView_Header.DisplayIndex = 1; RecordView_RankS.Width = 100; RecordView_RankS.Visible = true; RecordView_RankA.Width = 100; RecordView_RankA.Visible = true; RecordView_RankB.Width = 100; RecordView_RankB.Visible = true; RecordView_Date.Visible = false; RecordView_Map.Visible = false; RecordView_Rank.Visible = false; } else { RecordView_Header.HeaderText = ""; RecordView_Header.Width = 50; RecordView_Header.DisplayIndex = 0; RecordView_Date.Width = 150; RecordView_Date.Visible = true; RecordView_Map.Width = 240; RecordView_Map.Visible = true; RecordView_Rank.Width = 40; RecordView_Rank.Visible = true; RecordView_RankS.Visible = false; RecordView_RankA.Visible = false; RecordView_RankB.Visible = false; } RecordView.ColumnHeadersVisible = true; StatusInfo.Text = "検索中です..."; StatusInfo.Tag = DateTime.Now; Searcher.RunWorkerAsync(args); }
public void SearchForIndex_IncorrectParamsNullParam_ThrowsExeption(string[] arr, string value) { Assert.Throws <ArgumentNullException>(() => Searcher.SearchForIndex(arr, value)); }
public void Searcher_CanEscapeHtmlMarkup(string input, string expectedOutput) { string output = new Searcher().EscapeHtmlMarkup(input); Assert.That(output, Is.EqualTo(expectedOutput)); }
public void Can_merge() { var dir = CreateDir(); var docs = new List <dynamic> { new { _id = "0", title = "Rambo First Blood" }, new { _id = "1", title = "the rain man" }, new { _id = "2", title = "the good, the bad and the ugly" } }.ToDocuments(primaryKeyFieldName: "_id"); var moreDocs = new List <dynamic> { new { _id = "3", title = "rambo 2" }, new { _id = "4", title = "rocky 2" }, new { _id = "5", title = "the raiders of the lost ark" }, }.ToDocuments(primaryKeyFieldName: "_id"); long indexName; long indexName2; using (var writer = new FullTextUpsertTransaction( dir, new Analyzer(), compression: Compression.NoCompression, documents: docs)) { indexName = writer.Write(); using (var writer2 = new FullTextUpsertTransaction( dir, new Analyzer(), compression: Compression.NoCompression, documents: moreDocs)) { indexName2 = writer2.Write(); } } using (var merge1 = new MergeCommand(dir)) merge1.Commit(); using (var searcher = new Searcher(dir)) { var result = searcher.Search("title:'rambo'"); Assert.AreEqual(2, result.Total); Assert.AreEqual(2, result.Docs.Count); Assert.IsTrue(result.Docs.Any(d => d.TableRow.Fields["_id"].Value == "0")); Assert.IsTrue(result.Docs.Any(d => d.TableRow.Fields["_id"].Value == "3")); } using (var merge2 = new MergeCommand(dir)) merge2.Commit(); using (var searcher = new Searcher(dir)) { var result = searcher.Search("title:'rambo'"); Assert.AreEqual(2, result.Total); Assert.AreEqual(2, result.Docs.Count); Assert.IsTrue(result.Docs.Any(d => d.TableRow.Fields["_id"].Value == "0")); Assert.IsTrue(result.Docs.Any(d => d.TableRow.Fields["_id"].Value == "3")); } using (var merge3 = new MergeCommand(dir)) { merge3.Commit(); } using (var searcher = new Searcher(dir)) { var result = searcher.Search("title:'rambo'"); Assert.AreEqual(2, result.Total); Assert.AreEqual(2, result.Docs.Count); Assert.IsTrue(result.Docs.Any(d => d.TableRow.Fields["_id"].Value == "0")); Assert.IsTrue(result.Docs.Any(d => d.TableRow.Fields["_id"].Value == "3")); } }
internal void SetSearcher(Searcher searcher) { this.searcher = searcher; }
public ActionResult Index(string word, int?section, int?page) { var rd = new RouteValueDictionary(); rd.Add("word", word ?? ""); rd.Add("section", section ?? 0); var category = new StoreCategory() { LastMod = DateTime.Now, ShowBigIcons = false }; var searcher = new Searcher(word ?? "", section ?? 0); var item = searcher.FullTextSearchQuery; switch (category.CatalogFilter.ProductOrder) { default: if (category.CatalogFilter.ProductOrder.StartsWith("Char_")) { int cid = category.CatalogFilter.ProductOrder.Replace("Char_", "").ToInt(); item = item.OrderBy( x => (x.StoreCharacterToProducts.FirstOrDefault( z => z.StoreCharacterValue.CharacterID == cid) ?? new StoreCharacterToProduct() { StoreCharacterValue = new StoreCharacterValue() { Value = "ZZZZZZZZZZ" } }) .StoreCharacterValue.Value.Length).ThenBy( x => (x.StoreCharacterToProducts.FirstOrDefault( z => z.StoreCharacterValue.CharacterID == cid) ?? new StoreCharacterToProduct() { StoreCharacterValue = new StoreCharacterValue() { Value = "ZZZZZZZZZZ" } }) .StoreCharacterValue.Value); } break; case "OrderNum": item = item.OrderBy(x => x.StoreProductsToCategories.Any() ? x.StoreProductsToCategories.First().OrderNum : 100000); break; case "AlphaBet": item = item.OrderByDescending(x => x.ViewCount).ThenBy(x => x.Name); break; case "AlphaBetDesc": item = item.OrderBy(x => x.ViewCount).ThenByDescending(x => x.Name); break; case "Cheap": item = item.OrderBy(x => x.SitePrice); break; case "CheapDesc": item = item.OrderByDescending(x => x.SitePrice); break; case "Expensive": item = item.OrderByDescending(x => x.Price); break; case "AddDate": item = item.OrderByDescending(x => x.AddDate); break; case "VoteOverage": item = item.OrderByDescending(x => x.VoteOverage); break; } if ((word ?? "").Length <= 2) { item = new List <StoreProduct>().AsQueryable(); } var paged = new PagedData <StoreProduct>(item, CatalogBrowser.PageNumber, category.CatalogFilter.ProductCount, rd); category.ProductList = paged; return (PartialView(category)); }
public ActionResult FastList(string term, int section) { var contentResult = new ContentResult() { ContentEncoding = Encoding.UTF8, ContentType = "text/plain" }; var result = new List <SearchItem>(); var serializer = new JavaScriptSerializer(); if (string.IsNullOrEmpty(term) || term.Length < 1) { contentResult.Content = serializer.Serialize(result); return(contentResult); } var searcher = new Searcher(term, section); contentResult.Content = serializer.Serialize(searcher.FullTextSearchResult); return(contentResult); var tmp = searcher.ProductList; term = searcher.Term; var terms = new[] { term, (term + " ").Replace(" ", " ") }; var rpts = new[] { term.Replace(" ", "_"), (term + " ").Replace(" ", "_").Replace("__", "_") }; var names = tmp.Select(x => x.Name.ToLower()).ToArray(); for (int i = 0; i < names.Length; i++) { for (int j = 0; j < terms.Length; j++) { names[i] = names[i].Replace(terms[j], rpts[j]); } } var rpl = names .SelectMany(x => x.Split <string>(" ")).Select(x => x.Trim(',', ';')); var words = rpl .Where( x => rpts.Any(z => x.StartsWith(z, StringComparison.CurrentCultureIgnoreCase)) && x.Length > 3) .Distinct().Select(x => x.Replace("_", " ")); var re = words.Select(x => new SearchItem() { label = x, count = tmp.Count(z => z.Name.ToLower().Contains(x.ToLower())) }) .Select(x => new SearchItem() { label = "{0} - около {1} товаров".FormatWith(x.label, x.count), value = x.label }); contentResult.Content = serializer.Serialize(re); return(contentResult); /* var names = tmp.Select(x => x.Name).Take(limit).ToArray(); * var r = * GuessGroups(names, 15, 4) * .ToList() * .Select( * x => * new SearchItem() * { * label = string.Format("{0} - (около {1} товаров)", ClearLast(x.Item1), x.Item2.Count()), * count = x.Item2.Count() * }).Where(x=> x.label.Contains(term)) * .ToArray() * .GroupBy(x => x.label) * .Select(x => new SearchItem() {count = x.Sum(z => z.count), label = x.First().label}); * * * contentResult.Content = serializer.Serialize(r); * return contentResult;*/ }
public string SearchForIndex_CorrectParamsDecreasingArr_ExpectedResult(int[] arr, int value) { return(Searcher.SearchForIndex(arr, value)); }
protected internal override Weight CreateWeight(Searcher searcher) { return(new BoostingTermWeight(this, this, searcher)); }
public void SearchForIndex_IncorrectParamsUnsorted_ThrowsExeption(int[] arr, int value) { Assert.Throws <ArgumentException>(() => Searcher.SearchForIndex(arr, value)); }
public BoostingTermWeight(BoostingTermQuery enclosingInstance, BoostingTermQuery query, Searcher searcher) : base(query, searcher) { InitBlock(enclosingInstance); }
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e) { _searcher = new Searcher("http://search.twitter.com/search.atom?q="); }
private void ButtonRun_Click(object sender, EventArgs e) { if (Searcher.IsBusy) { if (MessageBox.Show(EncycloRes.InterruptSearch, EncycloRes.Searching, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { Searcher.CancelAsync(); } return; } RecordView.Rows.Clear(); var row = new DataGridViewRow(); row.CreateCells(RecordView); var args = new SearchArgument { EquipmentCategory = (int)EquipmentCategory.SelectedValue, EquipmentName = (string)EquipmentName.SelectedItem, SecretaryCategory = (int)SecretaryCategory.SelectedValue, SecretaryName = (string)SecretaryName.SelectedItem, DateBegin = DateBegin.Value, DateEnd = DateEnd.Value, Recipe = (string)Recipe.SelectedItem, MergeRows = MergeRows.Checked, BaseRow = row }; RecordView.Tag = args; if (!MergeRows.Checked) { RecordView_Header.Width = 50; RecordView_Header.HeaderText = ""; RecordView_Name.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; RecordView_Name.HeaderText = "Equipment"; RecordView_Date.Width = 140; RecordView_Date.Visible = true; RecordView_Recipe.Width = 95; RecordView_Recipe.Visible = true; RecordView_FlagshipType.Width = 40; RecordView_FlagshipType.Visible = true; RecordView_Flagship.Width = 105; RecordView_Flagship.Visible = true; RecordView_Detail.Visible = false; } else { RecordView_Header.Width = 150; RecordView_Header.HeaderText = EncycloRes.Tries; RecordView_Name.AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet; RecordView_Name.Width = 160; RecordView_Name.HeaderText = ((EquipmentName.Text != NameAny && EquipmentName.Text != NameExist) || (int)EquipmentCategory.SelectedValue != -1) ? "Recipe" : "Equipment"; RecordView_Date.Visible = false; RecordView_Recipe.Visible = false; RecordView_FlagshipType.Visible = false; RecordView_Flagship.Visible = false; RecordView_Detail.HeaderText = (SecretaryName.Text != NameAny || (int)SecretaryCategory.SelectedValue != -1) ? "Recipe Tries" : "Ship Type"; RecordView_Detail.Visible = true; } RecordView.ColumnHeadersVisible = true; StatusInfo.Text = EncycloRes.Searching + "..."; StatusInfo.Tag = DateTime.Now; Searcher.RunWorkerAsync(args); }
/// <inheritdoc /> public SabberStoneAction Act(SabberStoneState state) { var timer = Stopwatch.StartNew(); var stateCopy = (SabberStoneState)state.Copy(); if (_debug) { Console.WriteLine(); } if (_debug) { Console.WriteLine(Name()); } if (_debug) { Console.WriteLine($"Starting an LSI search in turn {(stateCopy.Game.Turn + 1) / 2}"); } // Create a new LSI search var search = new LSI <List <SabberStoneAction>, SabberStoneState, SabberStoneAction, object, TreeSearchNode <SabberStoneState, SabberStoneAction>, OddmentTable <SabberStonePlayerTask> >( SideInformationStrategy, SamplingStrategy, Playout, Evaluation, GameLogic, BudgetEstimationStrategy ); // Reset the solutions collection EnsembleSolutions = new List <SabberStoneAction>(); // Create a SearchContext that just holds the current state as Source and the Search. var context = SearchContext <List <SabberStoneAction>, SabberStoneState, SabberStoneAction, object, SabberStoneAction> .Context(EnsembleSolutions, stateCopy, null, null, search, null); // The Playout strategy will call the Goal strategy from the context, so we set it here context.Goal = Goal; // Execute the search Ensemble.EnsembleSearch(context, Searcher.Search, EnsembleSize); SamplesSpent = EnsembleSolutions.Sum(i => i.BudgetUsed); // Determine a solution var solution = Searcher.VoteForSolution(EnsembleSolutions, state); timer.Stop(); if (_debug) { Console.WriteLine(); } if (_debug) { Console.WriteLine($"LSI returned with solution: {solution}"); } if (_debug) { Console.WriteLine($"My total calculation time was: {timer.ElapsedMilliseconds}ms"); } // Check if the solution is a complete action. if (!solution.IsComplete()) { // Otherwise add an End-Turn task before returning. solution.Tasks.Add((SabberStonePlayerTask)EndTurnTask.Any(Player)); } // If we are estimating the budget by using the previous search's results, save these now if (BudgetEstimation == BudgetEstimationType.PreviousSearchAverage && BudgetEstimationStrategy is PreviousSearchAverageBudgetEstimationStrategy estimationStrategy) { estimationStrategy.PreviousSearchTime = timer.ElapsedMilliseconds; estimationStrategy.PreviousSearchIterations = SamplesSpent; } if (_debug) { Console.WriteLine(); } return(solution); }
/// <summary> /// Gets the Best Bets Categories for a given term /// </summary> /// <param name="term">The term to search</param> /// <param name="language">The two character language code to search, null or string.empty if searching all.</param> public static BestBetResult[] Search(string term, string language) { List <BestBetResult> includedResults = new List <BestBetResult>(); string cleanTerm = BestBetUtils.CleanTerm(term); List <string> tokenizedString = BestBetUtils.TokenizeStringStandard(cleanTerm); Searcher searcher = Index.BestBetsIndex.Instance.GetSearcher(); Query q = BuildQuery(tokenizedString, language); TopDocs docs = searcher.Search(q, null, searcher.MaxDoc); List <string> excludedIDs = new List <string>(); // Loop through results and process each result. foreach (var res in docs.ScoreDocs) { //Fetch the doc from the index. var doc = searcher.Doc(res.Doc); //int docID = res.Doc; string categoryID = doc.Get("cat_id"); string categoryName = doc.Get("cat_name"); bool isExactMatch = bool.Parse(doc.Get("is_exact")); bool isExclusion = bool.Parse(doc.Get("is_exclude")); string terms = doc.Get("terms"); int numTerms = int.Parse(doc.Get("term_count")); //Score = res.Score //If we do not match exactly, don't add this if (isExactMatch && (numTerms != tokenizedString.Count)) { continue; } if (isExclusion) { if (!excludedIDs.Contains(categoryID)) { excludedIDs.Add(categoryID); } includedResults.RemoveAll(item => item.CategoryID == categoryID); } else { if (!includedResults.Exists(item => item.CategoryID == categoryID) && !excludedIDs.Contains(categoryID)) { includedResults.Add(new BestBetResult() { CategoryID = categoryID, CategoryName = categoryName }); } } } return(includedResults.ToArray()); }
public PayloadTermWeight(PayloadTermQuery enclosingInstance, PayloadTermQuery query, Searcher searcher) : base(query, searcher) { InitBlock(enclosingInstance); }
/// <summary> /// This method uses a custom HitCollector implementation which simply prints out /// the docId and score of every matching document. /// /// This simulates the streaming search use case, where all hits are supposed to /// be processed, regardless of their relevance. /// </summary> public static void DoStreamingSearch(Searcher searcher, Query query) { Collector streamingHitCollector = new AnonymousClassCollector(); searcher.Search(query, streamingHitCollector); }
public PayloadNearSpanWeight(PayloadNearQuery enclosingInstance, SpanQuery query, Searcher searcher) : base(query, searcher) { InitBlock(enclosingInstance); }
public override Weight CreateWeight(Searcher searcher, IState state) { return(new InQueryWeight(this, searcher)); }
/// <summary> This demonstrates a typical paging search scenario, where the search engine presents /// pages of size n to the user. The user can then go to the next page if interested in /// the next hits. /// /// When the query is executed for the first time, then only enough results are collected /// to fill 5 result pages. If the user wants to page beyond this limit, then the query /// is executed another time and all hits are collected. /// /// </summary> public static void DoPagingSearch(StreamReader input, Searcher searcher, Query query, int hitsPerPage, bool raw, bool interactive) { // Collect enough docs to show 5 pages var collector = TopScoreDocCollector.Create(5 * hitsPerPage, false); searcher.Search(query, collector); var hits = collector.TopDocs().ScoreDocs; int numTotalHits = collector.TotalHits; Console.Out.WriteLine(numTotalHits + " total matching documents"); int start = 0; int end = Math.Min(numTotalHits, hitsPerPage); while (true) { if (end > hits.Length) { Console.Out.WriteLine("Only results 1 - " + hits.Length + " of " + numTotalHits + " total matching documents collected."); Console.Out.WriteLine("Collect more (y/n) ?"); String line = input.ReadLine(); if (String.IsNullOrEmpty(line) || line[0] == 'n') { break; } collector = TopScoreDocCollector.Create(numTotalHits, false); searcher.Search(query, collector); hits = collector.TopDocs().ScoreDocs; } end = Math.Min(hits.Length, start + hitsPerPage); for (int i = start; i < end; i++) { if (raw) { // output raw format Console.Out.WriteLine("doc=" + hits[i].Doc + " score=" + hits[i].Score); continue; } Document doc = searcher.Doc(hits[i].Doc); String path = doc.Get("path"); if (path != null) { Console.Out.WriteLine((i + 1) + ". " + path); String title = doc.Get("title"); if (title != null) { Console.Out.WriteLine(" Title: " + doc.Get("title")); } } else { Console.Out.WriteLine((i + 1) + ". " + "No path for this document"); } } if (!interactive) { break; } if (numTotalHits >= end) { bool quit = false; while (true) { Console.Out.Write("Press "); if (start - hitsPerPage >= 0) { Console.Out.Write("(p)revious page, "); } if (start + hitsPerPage < numTotalHits) { Console.Out.Write("(n)ext page, "); } Console.Out.WriteLine("(q)uit or enter number to jump to a page."); String line = input.ReadLine(); if (String.IsNullOrEmpty(line) || line[0] == 'q') { quit = true; break; } if (line[0] == 'p') { start = Math.Max(0, start - hitsPerPage); break; } else if (line[0] == 'n') { if (start + hitsPerPage < numTotalHits) { start += hitsPerPage; } break; } else { int page; if (Int32.TryParse(line, out page)) { if ((page - 1) * hitsPerPage < numTotalHits) { start = (page - 1) * hitsPerPage; break; } else { Console.Out.WriteLine("No such page"); } } else { Console.Out.WriteLine("Unrecognized page number. Quitting."); quit = true; break; } } } if (quit) { break; } end = Math.Min(numTotalHits, start + hitsPerPage); } } }
public SearcherTests() { invertedIndex = GeneralFunctions.InitialInvertedIndex(); searcher = new Searcher(); }
// // GET: /Home/ public ActionResult Index(string searchString, string category, int?page) { var componentsPerPage = new int?(); var mySearcher = new Searcher(); var myComponentDataUtil = new ComponentDataUtil(); var myComponents = new Components(); var emptyComponent = new Component(); var listOfQuantity = new List <int>(); emptyComponent.ComponentName = "Ingen Komponenter Fundet"; componentsPerPage = 20; // Tjekker om der er indtastet en søgning, hvis ja, hentes en komponentliste med de indtastede tags if (!String.IsNullOrEmpty(searchString)) { var SearchTags = mySearcher.SplitString(searchString); foreach (var component in myComponentDataUtil.GetComponents(SearchTags)) { myComponents._components.Add(component); } } else { //Tjekker om man har trykket på en kategori, hvis ja, hentes en komponentliste med den kategori if (!String.IsNullOrEmpty(category)) { foreach (var component in myComponentDataUtil.GetAllComponents()) { if (component.Category == category) { myComponents._components.Add(component); } } } else { foreach (var component in myComponentDataUtil.GetAllComponents()) { myComponents._components.Add(component); } } } //Opretter liste med alle kategorier var listOfCategories = myComponents.GetAllCategories(); //Sætter listen med kategorier i alfabetisk rækkefølge listOfCategories.Sort(); //Opretter liste til hvis der ikke eksisterer nogen kategorier var noneFound = new List <string> { "Ingen kategorier fundet" }; if (listOfCategories.Count != 0) { ViewData["Categories"] = listOfCategories; } else { ViewData["Categories"] = noneFound; } //Sorterer listen med komponenter, så den er i alfabetisk rækkefølge og komponenterne kun ankommer en gang. var sortedList = myComponents._components.OrderBy(c => c.ComponentName).DistinctBy(c => c.SerieNr).ToList(); //Udregner hvor mange sider, der skal være på hjemmesiden ViewData["NumberOfPages"] = (sortedList.Count + componentsPerPage - 1) / componentsPerPage; //Udregner hvor mange der er af hver komponent type(taget ud af serieNr), lægger det derefter over i en ny liste foreach (var component in sortedList) { listOfQuantity.Add(myComponents.GetAvailableQuantity(component.SerieNr)); } //Hvis dette tjek går igennem, er der ikke nok komponenter til at vise den ønskede side if (((componentsPerPage * page.GetValueOrDefault())) >= sortedList.Count || page < 0) { myComponents._components.Clear(); myComponents._components.Add(emptyComponent); listOfQuantity.Clear(); listOfQuantity.Add(0); return(View(myComponents._components)); } ViewData["AvailableQuantity"] = listOfQuantity; //Hvis dette tjek går igennem har man komponenter til overs, men ikke nok til at lave en "hel" side if (((componentsPerPage * page.GetValueOrDefault()) + componentsPerPage) > sortedList.Count) { return(View(sortedList.GetRange((page * componentsPerPage).GetValueOrDefault(), sortedList.Count - (componentsPerPage * page).GetValueOrDefault()))); } //Returnerer componentsPerPage, startende fra den side man er kommet til return(View(sortedList.GetRange(((page * componentsPerPage).GetValueOrDefault()), componentsPerPage.GetValueOrDefault()))); }
protected override IQueryable <UserEvent> Selector(DataServiceQuery <UserEvent> userEvents, Searcher searcher) => userEvents .Expand(userEvent => userEvent.User) .Expand(userEvent => userEvent.Event) .Where(userEvent => userEvent.User.Id == Guid.Parse(Id));