Hi all,
I create a method above que generate my boolean query based in many parameters. The query's on not analyzed fields works perfect in debug. When start a search using any analyzed field with BrazilianAnalyzer, always a return empty result (zero docs). I do test in separeted solution with a unique field with Brazilian Analyzer in indexing and searching. If use a BooleanQuery and not queryparse, don't works as expected. Return empty result. When change for StandardAnalyzer on Indexing and Serching, without alter other parts of code, works. Could anyone help me? [Code] protected virtual BooleanQuery GetExpressionBooleanQuery(string searchExpression, SearchModeEnum searchMode, bool searchDocumentHistory, bool onlyDocumentHistory) { if (string.IsNullOrEmpty(searchExpression)) { return null; } BooleanQuery queryWords = new BooleanQuery(); PhraseQuery phrase = new PhraseQuery(); string[] expressions = null; expressions = searchExpression.ToLower().Replace("\"", "").Split(' '); for (int i = 0; i < expressions.Length; i++) { if (!string.IsNullOrEmpty(expressions[i].Trim())) { if (expressions.Length > 1) { switch (searchMode) { case SearchModeEnum.ExactPhrase: if (!onlyDocumentHistory) { phrase.Add(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT, expressions[i].Trim()), i); } if (searchDocumentHistory) { phrase.Add(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT_NODEXML, expressions[i].Trim()), i); } break; case SearchModeEnum.AnyWord: if (!onlyDocumentHistory) { queryWords.Add(new BooleanClause(new TermQuery(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT, expressions[i].Trim())), BooleanClause.Occur.SHOULD)); } if (searchDocumentHistory) { queryWords.Add(new BooleanClause(new TermQuery(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT_NODEXML, expressions[i].Trim())), BooleanClause.Occur.SHOULD)); } break; case SearchModeEnum.AllWords: if (!onlyDocumentHistory) { queryWords.Add(new BooleanClause(new TermQuery(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT, expressions[i].Trim())), BooleanClause.Occur.MUST)); } if (searchDocumentHistory) { queryWords.Add(new BooleanClause(new TermQuery(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT_NODEXML, expressions[i].Trim())), BooleanClause.Occur.MUST)); } break; default: break; } } else { if (!onlyDocumentHistory) { queryWords.Add(new BooleanClause(new TermQuery(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT, expressions[i].Trim())), BooleanClause.Occur.MUST)); } if (searchDocumentHistory) { queryWords.Add(new BooleanClause(new TermQuery(new Term(ColumnsIndexedDocuments.COLUMN_DOCUMENTCONTENT_NODEXML, expressions[i].Trim())), BooleanClause.Occur.MUST)); } } } } if (phrase.GetTerms().Length > 0) { queryWords.Add(new BooleanClause(phrase, BooleanClause.Occur.MUST)); } return queryWords; } [/Code] I wait for help. Please! Thanks! Descrição: marcelo-neves