public virtual string GetExpression() { StringBuilder stringBuilder = new StringBuilder(); Collection <string> collection = CollectionQueryBase.RemoveDuplicates(this.Items); int num = 0; foreach (string str in collection) { ++num; stringBuilder.Append(this.IndexFieldName + ":("); if (num < collection.Count) { stringBuilder.Append(LuceneQueryHelper.Escape(str)); stringBuilder.Append(") "); stringBuilder.Append(Enum.GetName(typeof(LuceneOperator), (object)this.InnerOperator)); stringBuilder.Append(" "); } else { stringBuilder.Append(LuceneQueryHelper.Escape(str)); stringBuilder.Append(")"); } } return(stringBuilder.ToString()); }
public string GetExpression() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(ContentIndexHelpers.GetIndexFieldName(Field)); stringBuilder.Append(":"); stringBuilder.Append(this.Inclusive ? "[" : "{"); stringBuilder.Append(LuceneQueryHelper.Escape(this.Start)); stringBuilder.Append(" TO "); stringBuilder.Append(LuceneQueryHelper.Escape(this.End)); stringBuilder.Append(this.Inclusive ? "]" : "}"); return(stringBuilder.ToString()); }
public virtual string GetExpression() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(ContentIndexHelpers.GetIndexFieldName(Constants.INDEX_FIELD_NAME_VIRTUAL_PATH) + ":("); foreach (string virtualPathNode in this.VirtualPathNodes) { stringBuilder.Append(LuceneQueryHelper.Escape(virtualPathNode.Replace(" ", ""))); stringBuilder.Append("|"); } if (stringBuilder.Length > 0) { stringBuilder.Remove(stringBuilder.Length - 1, 1); } stringBuilder.Append("*)"); return(stringBuilder.ToString()); }
public override void ReindexSite(List <SearchDocument> documents, Guid siteRootId) { lock (_writeLock) { BooleanQuery.MaxClauseCount = int.MaxValue; var fieldName = ContentIndexHelpers.GetIndexFieldName(Constants.INDEX_FIELD_NAME_VIRTUAL_PATH); var siteRoot = "*" + LuceneQueryHelper.Escape(siteRootId.ToString().ToLower().Replace(" ", "")) + "*"; var siteRootQuery = $"{fieldName}:{siteRoot}"; var queryParser = new QueryParser(LuceneConfiguration.LuceneVersion, fieldName, LuceneConfiguration.Analyzer); queryParser.AllowLeadingWildcard = true; var deleteQuery = queryParser.Parse(siteRootQuery); _indexWriter.DeleteDocuments(deleteQuery); foreach (var document in documents) { _indexWriter.AddDocument(document.Document); } } }
public virtual void ReindexSite(List <SearchDocument> documents, Guid siteRootId) { if (!LuceneContext.AllowIndexing) { return; } var deletedList = new List <SearchDocument>(); try { lock (_writeLock) { BooleanQuery.MaxClauseCount = int.MaxValue; var fieldName = ContentIndexHelpers.GetIndexFieldName(Constants.INDEX_FIELD_NAME_VIRTUAL_PATH); var siteRoot = "*" + LuceneQueryHelper.Escape(siteRootId.ToString().ToLower().Replace(" ", "")) + "*"; var siteRootQuery = $"{fieldName}:{siteRoot}"; var queryParser = new QueryParser(LuceneConfiguration.LuceneVersion, fieldName, LuceneConfiguration.Analyzer); queryParser.AllowLeadingWildcard = true; var deleteQuery = queryParser.Parse(siteRootQuery); using (IndexWriter indexWriter = new IndexWriter(LuceneContext.Directory, LuceneConfiguration.Analyzer, false, IndexWriter.MaxFieldLength.UNLIMITED)) { indexWriter.SetMergeScheduler(new SerialMergeScheduler()); indexWriter.DeleteDocuments(deleteQuery); foreach (var document in documents) { indexWriter.AddDocument(document.Document); } indexWriter.Commit(); } } } catch (Exception ex) { _logger.Error("Lucene Search Error", ex); } finally { if (IndexWriter.IsLocked(LuceneContext.Directory)) { IndexWriter.Unlock(LuceneContext.Directory); } } }
public string GetExpression() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(ContentIndexHelpers.GetIndexFieldName(FieldName)); stringBuilder.Append(":("); stringBuilder.Append(LuceneQueryHelper.EscapeParenthesis(Value)); if (UseWildCard) { stringBuilder.Append("*"); } if (Boost.HasValue) { stringBuilder.Append($"^{Boost}"); } stringBuilder.Append(")"); return(stringBuilder.ToString()); }