Exemplo n.º 1
0
        public void Facets()
        {
            var q = new Dictionary <string, string>();

            q["q"]    = "";
            q["rows"] = SolrQueryExecuter <TestDocument> .ConstDefaultRows.ToString();

            q["facet"]       = "true";
            q["facet.field"] = "Id";
            q["facet.query"] = "id:[1 TO 5]";
            var conn            = new MockConnection(q);
            var querySerializer = new DefaultQuerySerializer(new DefaultFieldSerializer());

            var parser = new MSolrAbstractResponseParser <TestDocument>();

            parser.parse &= x => x.Stub();
            var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
            var queryExecuter        = new SolrQueryExecuter <TestDocument>(parser, conn, querySerializer, facetQuerySerializer, null);

            queryExecuter.Execute(new SolrQuery(""), new QueryOptions {
                Facet = new FacetParameters {
                    Queries = new ISolrFacetQuery[] {
                        new SolrFacetFieldQuery("Id"),
                        new SolrFacetQuery(new SolrQuery("id:[1 TO 5]")),
                    }
                }
            });
        }
Exemplo n.º 2
0
        public void GetAllParameters_mlt_with_field_query()
        {
            var serializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var qe         = new SolrQueryExecuter <TestDocument>(null, null, serializer, null, null);
            var p          = qe.GetAllMoreLikeThisHandlerParameters(
                new SolrMoreLikeThisHandlerQuery(new SolrQueryByField("id", "1234")),
                new MoreLikeThisHandlerQueryOptions(
                    new MoreLikeThisHandlerParameters(new[] { "one", "three" })
            {
                MatchInclude = false,
                MatchOffset  = 5,
                ShowTerms    = InterestingTerms.None,
            })
            {
                Start  = 0,
                Rows   = 5,
                Fields = new[] { "one", "two", "three" },
            }).ToList();

            Assert.Contains(p, KV.Create("q", "(id:1234)"));
            Assert.Contains(p, KV.Create("start", "0"));
            Assert.Contains(p, KV.Create("rows", "5"));
            Assert.Contains(p, KV.Create("fl", "one,two,three"));
            Assert.Contains(p, KV.Create("mlt.fl", "one,three"));
            Assert.Contains(p, KV.Create("mlt.match.include", "false"));
            Assert.Contains(p, KV.Create("mlt.match.offset", "5"));
            Assert.Contains(p, KV.Create("mlt.interestingTerms", "none"));
        }
Exemplo n.º 3
0
        public void MultipleFacetFields()
        {
            var conn = new MockConnection(new[] {
                KV.Create("q", ""),
                KV.Create("rows", SolrQueryExecuter <TestDocument> .ConstDefaultRows.ToString()),
                KV.Create("facet", "true"),
                KV.Create("facet.field", "Id"),
                KV.Create("facet.field", "OtherField"),
            });
            var serializer           = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var facetQuerySerializer = new DefaultFacetQuerySerializer(serializer, new DefaultFieldSerializer());

            var parser = new MSolrAbstractResponseParser <TestDocument>();

            parser.parse &= x => x.Stub();
            var queryExecuter = new SolrQueryExecuter <TestDocument>(parser, conn, serializer, facetQuerySerializer, null);

            queryExecuter.Execute(new SolrQuery(""), new QueryOptions {
                Facet = new FacetParameters {
                    Queries = new ISolrFacetQuery[] {
                        new SolrFacetFieldQuery("Id"),
                        new SolrFacetFieldQuery("OtherField"),
                    }
                }
            });
        }
Exemplo n.º 4
0
        public void FilterQuery()
        {
            var querySerializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var conn            = new MockConnection(new[] {
                KV.Create("q", "*:*"),
                KV.Create("rows", "10"),
                KV.Create("fq", "id:0"),
                KV.Create("fq", "id:2"),
            });

            var parser = new MSolrAbstractResponseParser <TestDocument>();

            parser.parse &= x => x.Stub();
            var queryExecuter = new SolrQueryExecuter <TestDocument>(parser, conn, querySerializer, null, null)
            {
                DefaultRows = 10,
            };

            queryExecuter.Execute(SolrQuery.All, new QueryOptions {
                FilterQueries = new[] {
                    new SolrQuery("id:0"),
                    new SolrQuery("id:2"),
                },
            });
        }
Exemplo n.º 5
0
        public void FacetQuery()
        {
            var mocks = new MockRepository();
            var query = new Dictionary <string, string>();

            query["q"]    = "";
            query["rows"] = SolrQueryExecuter <TestDocumentWithUniqueKey> .ConstDefaultRows.ToString();

            query["facet"]       = "true";
            query["facet.query"] = "id:1";
            var connection           = new MockConnection(query);
            var parser               = mocks.StrictMock <ISolrQueryResultParser <TestDocumentWithUniqueKey> >();
            var docSerializer        = mocks.StrictMock <ISolrDocumentSerializer <TestDocumentWithUniqueKey> >();
            var querySerializer      = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());

            With.Mocks(mocks).Expecting(() => {
                Expect.On(parser)
                .Call(parser.Parse(null))
                .IgnoreArguments()
                .Return(new SolrQueryResults <TestDocumentWithUniqueKey>());
            }).Verify(() => {
                var executer = new SolrQueryExecuter <TestDocumentWithUniqueKey>(parser, connection, querySerializer, facetQuerySerializer);
                var solr     = new SolrBasicServer <TestDocumentWithUniqueKey>(connection, executer, docSerializer, null, null, null, null, null);
                var r        = solr.Query(new SolrQuery(""), new QueryOptions {
                    Facet = new FacetParameters {
                        Queries = new ISolrFacetQuery[] {
                            new SolrFacetQuery(new SolrQuery("id:1")),
                        },
                    }
                });
            });
        }
Exemplo n.º 6
0
        public void FacetQuery()
        {
            var connection = new MSolrConnection();

            connection.get += (url, param) => {
                Assert.AreEqual("/select", url);
                var expectedParams = new Dictionary <string, string> {
                    { "q", "" },
                    { "rows", SolrQueryExecuter <TestDocumentWithUniqueKey> .ConstDefaultRows.ToString() },
                    { "facet", "true" },
                    { "facet.query", "id:1" },
                };
                CollectionAssert.AreEquivalent(expectedParams, param);
                return(EmbeddedResource.GetEmbeddedString(GetType(), "Resources.response.xml"));
            };

            var querySerializer      = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
            var parser = new MSolrAbstractResponseParser <TestDocumentWithUniqueKey>();

            parser.parse &= x => x.Stub();
            var executer = new SolrQueryExecuter <TestDocumentWithUniqueKey>(parser, connection, querySerializer, facetQuerySerializer, null);
            var solr     = new SolrBasicServer <TestDocumentWithUniqueKey>(connection, executer, null, null, null, null, null, null);
            var r        = solr.Query(new SolrQuery(""), new QueryOptions {
                Facet = new FacetParameters {
                    Queries = new ISolrFacetQuery[] {
                        new SolrFacetQuery(new SolrQuery("id:1")),
                    },
                }
            });

            Assert.AreEqual(1, connection.get.Calls);
        }
Exemplo n.º 7
0
        public void Facets()
        {
            var q = new Dictionary <string, string>();

            q["q"]    = "";
            q["rows"] = SolrQueryExecuter <TestDocument> .ConstDefaultRows.ToString();

            q["facet"]       = "true";
            q["facet.field"] = "Id";
            q["facet.query"] = "id:[1 TO 5]";
            var conn                 = new MockConnection(q);
            var mocks                = new MockRepository();
            var parser               = mocks.DynamicMock <ISolrQueryResultParser <TestDocument> >();
            var querySerializer      = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
            var queryExecuter        = new SolrQueryExecuter <TestDocument>(parser, conn, querySerializer, facetQuerySerializer);

            queryExecuter.Execute(new SolrQuery(""), new QueryOptions {
                Facet = new FacetParameters {
                    Queries = new ISolrFacetQuery[] {
                        new SolrFacetFieldQuery("Id"),
                        new SolrFacetQuery(new SolrQuery("id:[1 TO 5]")),
                    }
                }
            });
        }
Exemplo n.º 8
0
        public void ConstantScore_with_high_value()
        {
            var q          = new SolrConstantScoreQuery(new SolrQuery("solr"), 34.2E10);
            var serializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var query      = serializer.Serialize(q);

            Assert.Equal("(solr)^=342000000000", query);
        }
Exemplo n.º 9
0
        public void Boost_with_high_value()
        {
            var q          = new SolrQueryBoost(new SolrQuery("solr"), 34.2E10);
            var serializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var query      = serializer.Serialize(q);

            Assert.AreEqual("(solr)^342000000000", query);
        }
Exemplo n.º 10
0
        public void SolrQuery_Boost()
        {
            var q          = new SolrQuery("solr").Boost(12.2);
            var serializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var query      = serializer.Serialize(q);

            Assert.AreEqual("(solr)^12.2", query);
        }
Exemplo n.º 11
0
        public void Boost()
        {
            var q          = new SolrQueryBoost(new SolrQuery("solr"), 34.2);
            var serializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var query      = serializer.Serialize(q);

            Assert.Equal("(solr)^34.2", query);
        }
Exemplo n.º 12
0
        public void Query()
        {
            var q          = new SolrHasValueQuery("name");
            var serializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var query      = serializer.Serialize(q);

            Assert.AreEqual("name:[* TO *]", query);
        }
Exemplo n.º 13
0
        public void GetCollapseExpandParameters()
        {
            var querySerializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var e = new SolrQueryExecuter <TestDocument>(null, null, querySerializer, null, null);
            var p = e.GetAllParameters(SolrQuery.All, new QueryOptions {
                Rows           = 1,
                CollapseExpand = new CollapseExpandParameters("somefield", null, null, null),
            }).ToList();

            Assert.Contains(p, KV.Create("fq", "{!collapse field=somefield}"));
        }
Exemplo n.º 14
0
        public void GetCollapseExpandParameters_min_policy()
        {
            var querySerializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var e      = new SolrQueryExecuter <TestDocument>(null, null, querySerializer, null, null);
            var max    = new CollapseExpandParameters.MinOrMax.Max("maxfield");
            var policy = CollapseExpandParameters.NullPolicyType.Collapse;
            var p      = e.GetAllParameters(SolrQuery.All, new QueryOptions {
                Rows           = 1,
                CollapseExpand = new CollapseExpandParameters("somefield", null, max, policy),
            }).ToList();

            Assert.Contains(p, KV.Create("fq", "{!collapse field=somefield nullPolicy=collapse max=maxfield}"));
        }
Exemplo n.º 15
0
        public static ISolrBasicOperations <T> GetBasicServer <T>(ISolrConnection connection)
        {
            ISolrFieldParser             fieldParser = new DefaultFieldParser();
            IReadOnlyMappingManager      mapper      = new MemoizingMappingManager(new AttributesMappingManager());
            ISolrDocumentPropertyVisitor visitor     = new DefaultDocumentVisitor(mapper, fieldParser);

            ISolrDocumentResponseParser <T> parser;

            if (typeof(T) == typeof(Dictionary <string, object>))
            {
                parser = (ISolrDocumentResponseParser <T>) new SolrDictionaryDocumentResponseParser(fieldParser);
            }
            else
            {
                parser = new SolrDocumentResponseParser <T>(mapper, visitor, new SolrDocumentActivator <T>());
            }

            ISolrAbstractResponseParser <T> resultParser = new DefaultResponseParser <T>(parser);

            ISolrFieldSerializer fieldSerializer = new DefaultFieldSerializer();

            ;
            ISolrQuerySerializer      querySerializer      = new DefaultQuerySerializer(fieldSerializer);
            ISolrFacetQuerySerializer facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, fieldSerializer);
            // validate why only this?
            ISolrMoreLikeThisHandlerQueryResultsParser <T> mlthResultParser = new SolrMoreLikeThisHandlerQueryResultsParser <T>(new[] { resultParser });

            ISolrQueryExecuter <T> executor = new SolrQueryExecuter <T>(resultParser, connection, querySerializer, facetQuerySerializer, mlthResultParser);

            ISolrDocumentSerializer <T> documentSerializer;

            if (typeof(T) == typeof(Dictionary <string, object>))
            {
                documentSerializer = (ISolrDocumentSerializer <T>) new SolrDictionarySerializer(fieldSerializer);
            }
            else
            {
                documentSerializer = new SolrDocumentSerializer <T>(mapper, fieldSerializer);
            }

            ISolrSchemaParser          schemaParser          = new SolrSchemaParser();
            ISolrHeaderResponseParser  headerParser          = new HeaderResponseParser <T>();
            ISolrDIHStatusParser       dihStatusParser       = new SolrDIHStatusParser();
            ISolrExtractResponseParser extractResponseParser = new ExtractResponseParser(headerParser);

            ISolrBasicOperations <T> basicServer = new SolrBasicServer <T>(connection, executor, documentSerializer, schemaParser, headerParser, querySerializer, dihStatusParser, extractResponseParser);

            return(basicServer);
        }
Exemplo n.º 16
0
        public static AuthAdminSolrServer <T> CreateSolrServer(string connectionString, string coreIndex, IndexType indexType = IndexType.Solr)
        {
            var connection = BuildConnection.CreateSolrConnection(connectionString + coreIndex, indexType);

            var docSerializer        = new SolrDocumentSerializer <T>(new AttributesMappingManager(), new DefaultFieldSerializer());
            var headerResponseParser = new HeaderResponseParser <T>();

            var solrFieldSerializer = new DefaultFieldSerializer();
            var mapper               = new AttributesMappingManager();
            var dparser              = new SolrDocumentResponseParser <T>(mapper, new DefaultDocumentVisitor(mapper, new DefaultFieldParser()), new SolrDocumentActivator <T>());
            var parser               = new DefaultResponseParser <T>(dparser);
            var querySerializer      = new DefaultQuerySerializer(solrFieldSerializer);
            var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
            var executer             = new SolrQueryExecuter <T>(parser, connection, querySerializer, facetQuerySerializer, null);

            var basesolr = new SolrBasicServer <T>(connection, executer, docSerializer, null, headerResponseParser, null, null, null);

            return(new AuthAdminSolrServer <T>(basesolr, null, null));
        }
Exemplo n.º 17
0
        public void GetCollapseExpandParameters_Expand()
        {
            var querySerializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var e      = new SolrQueryExecuter <TestDocument>(null, null, querySerializer, null, null);
            var expand = new ExpandParameters(
                sort: new SortOrder("sortField", Order.ASC),
                rows: 100,
                query: new SolrQuery("aquery"),
                filterQuery: null);

            var p = e.GetAllParameters(SolrQuery.All, new QueryOptions {
                Rows           = 1,
                CollapseExpand = new CollapseExpandParameters("somefield", expand, null, null),
            }).ToList();

            Assert.Contains(p, KV.Create("fq", "{!collapse field=somefield}"));
            Assert.Contains(p, KV.Create("expand.sort", "sortField asc"));
            Assert.Contains(p, KV.Create("expand.rows", "100"));
            Assert.Contains(p, KV.Create("expand.q", "aquery"));
        }
Exemplo n.º 18
0
        public void FacetFieldQuery()
        {
            var mocks = new MockRepository();
            var query = new Dictionary <string, string>();

            query["q"]           = "*:*";
            query["facet"]       = "true";
            query["facet.field"] = "cat";
            query["rows"]        = "0";
            var connection        = new MockConnection(query);
            var resultParser      = mocks.StrictMock <ISolrQueryResultParser <TestDocumentWithUniqueKey> >();
            var mapper            = mocks.StrictMock <IReadOnlyMappingManager>();
            var validationManager = mocks.StrictMock <IMappingValidator>();
            var docSerializer     = mocks.StrictMock <ISolrDocumentSerializer <TestDocumentWithUniqueKey> >();

            With.Mocks(mocks).Expecting(() => {
                Expect.On(resultParser)
                .Call(resultParser.Parse(""))
                .IgnoreArguments()
                .Repeat.Once()
                .Return(new SolrQueryResults <TestDocumentWithUniqueKey> {
                    FacetFields = new Dictionary <string, ICollection <KeyValuePair <string, int> > > {
                        {
                            "cat", new List <KeyValuePair <string, int> > {
                                new KeyValuePair <string, int>("electronics", 5),
                                new KeyValuePair <string, int>("hard drive", 3),
                            }
                        }
                    }
                });
            }).Verify(() => {
                var querySerializer      = new DefaultQuerySerializer(new DefaultFieldSerializer());
                var facetQuerySerializer = new DefaultFacetQuerySerializer(querySerializer, new DefaultFieldSerializer());
                var queryExecuter        = new SolrQueryExecuter <TestDocumentWithUniqueKey>(resultParser, connection, querySerializer, facetQuerySerializer);
                var basicSolr            = new SolrBasicServer <TestDocumentWithUniqueKey>(connection, queryExecuter, docSerializer, null, null, null, null, null);
                var solr = new SolrServer <TestDocumentWithUniqueKey>(basicSolr, mapper, validationManager);
                var r    = solr.FacetFieldQuery(new SolrFacetFieldQuery("cat"));
                Assert.AreEqual(2, r.Count);
                Assert.AreEqual("electronics", r.First().Key);
            });
        }
        public DefaultSolrLocator()
        {
            MappingManager          = new MemoizingMappingManager(new AttributesMappingManager());
            FieldParser             = new DefaultFieldParser();
            DocumentPropertyVisitor = new DefaultDocumentVisitor(MappingManager, FieldParser);

            if (typeof(T) == typeof(Dictionary <string, object>))
            {
                DocumentResponseParser =
                    (ISolrDocumentResponseParser <T>) new SolrDictionaryDocumentResponseParser(FieldParser);
            }
            else
            {
                DocumentResponseParser = new SolrDocumentResponseParser <T>(MappingManager, DocumentPropertyVisitor,
                                                                            new SolrDocumentActivator <T>());
            }

            ResponseParser        = new DefaultResponseParser <T>(DocumentResponseParser);
            SchemaParser          = new SolrSchemaParser();
            HeaderParser          = new HeaderResponseParser <string>();
            DihStatusParser       = new SolrDIHStatusParser();
            ExtractResponseParser = new ExtractResponseParser(HeaderParser);
            FieldSerializer       = new DefaultFieldSerializer();

            QuerySerializer      = new DefaultQuerySerializer(FieldSerializer);
            FacetQuerySerializer = new DefaultFacetQuerySerializer(QuerySerializer, FieldSerializer);
            MlthResultParser     = new SolrMoreLikeThisHandlerQueryResultsParser <T>(new[] { ResponseParser });
            StatusResponseParser = new SolrStatusResponseParser();

            if (typeof(T) == typeof(Dictionary <string, object>))
            {
                DocumentSerializer = (ISolrDocumentSerializer <T>) new SolrDictionarySerializer(FieldSerializer);
            }
            else
            {
                DocumentSerializer = new SolrDocumentSerializer <T>(MappingManager, FieldSerializer);
            }

            HttpCache = new NullCache();
        }
Exemplo n.º 20
0
        public void FilterQuery()
        {
            var mocks           = new MockRepository();
            var parser          = mocks.DynamicMock <ISolrQueryResultParser <TestDocument> >();
            var querySerializer = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var conn            = new MockConnection(new[] {
                KV.Create("q", "*:*"),
                KV.Create("rows", "10"),
                KV.Create("fq", "id:0"),
                KV.Create("fq", "id:2"),
            });
            var queryExecuter = new SolrQueryExecuter <TestDocument>(parser, conn, querySerializer, null, null)
            {
                DefaultRows = 10,
            };

            queryExecuter.Execute(SolrQuery.All, new QueryOptions {
                FilterQueries = new[] {
                    new SolrQuery("id:0"),
                    new SolrQuery("id:2"),
                },
            });
        }
Exemplo n.º 21
0
        public void MultipleFacetFields()
        {
            var conn = new MockConnection(new[] {
                KVP("q", ""),
                KVP("rows", SolrQueryExecuter <TestDocument> .ConstDefaultRows.ToString()),
                KVP("facet", "true"),
                KVP("facet.field", "Id"),
                KVP("facet.field", "OtherField"),
            });
            var mocks                = new MockRepository();
            var parser               = mocks.DynamicMock <ISolrQueryResultParser <TestDocument> >();
            var serializer           = new DefaultQuerySerializer(new DefaultFieldSerializer());
            var facetQuerySerializer = new DefaultFacetQuerySerializer(serializer, new DefaultFieldSerializer());
            var queryExecuter        = new SolrQueryExecuter <TestDocument>(parser, conn, serializer, facetQuerySerializer);

            queryExecuter.Execute(new SolrQuery(""), new QueryOptions {
                Facet = new FacetParameters {
                    Queries = new ISolrFacetQuery[] {
                        new SolrFacetFieldQuery("Id"),
                        new SolrFacetFieldQuery("OtherField"),
                    }
                }
            });
        }
Exemplo n.º 22
0
        public string SerializeQuery(object q)
        {
            var serializer = new DefaultQuerySerializer(new DefaultFieldSerializer());

            return(serializer.Serialize(q));
        }
Exemplo n.º 23
0
        public void Highlighting()
        {
            const string highlightedField = "field1";
            const string afterTerm        = "after";
            const string beforeTerm       = "before";
            const int    snippets         = 3;
            const string alt            = "alt";
            const int    fragsize       = 7;
            const string query          = "mausch";
            var          highlightQuery = new SolrQuery(query);
            var          q = new Dictionary <string, string>();

            q["q"]    = "";
            q["rows"] = SolrQueryExecuter <TestDocument> .ConstDefaultRows.ToString();

            q["hl"]                          = "true";
            q["hl.q"]                        = query;
            q["hl.fl"]                       = highlightedField;
            q["hl.snippets"]                 = snippets.ToString();
            q["hl.fragsize"]                 = fragsize.ToString();
            q["hl.requireFieldMatch"]        = "true";
            q["hl.alternateField"]           = alt;
            q["hl.tag.pre"]                  = beforeTerm;
            q["hl.tag.post"]                 = afterTerm;
            q["hl.regex.slop"]               = "4.12";
            q["hl.regex.pattern"]            = "\\.";
            q["hl.regex.maxAnalyzedChars"]   = "8000";
            q["hl.usePhraseHighlighter"]     = "true";
            q["hl.useFastVectorHighlighter"] = "true";
            q["hl.highlightMultiTerm"]       = "true";
            q["hl.mergeContiguous"]          = "true";
            q["hl.maxAnalyzedChars"]         = "12";
            q["hl.maxAlternateFieldLength"]  = "22";
            q["hl.fragmenter"]               = "regex";

            var conn            = new MockConnection(q);
            var querySerializer = new DefaultQuerySerializer(new MSolrFieldSerializer());

            var parser = new MSolrAbstractResponseParser <TestDocument>();

            parser.parse &= x => x.Stub();
            var queryExecuter = new SolrQueryExecuter <TestDocument>(parser, conn, querySerializer, null, null);

            queryExecuter.Execute(new SolrQuery(""), new QueryOptions {
                Highlight = new HighlightingParameters {
                    Fields                   = new[] { highlightedField },
                    AfterTerm                = afterTerm,
                    BeforeTerm               = beforeTerm,
                    Query                    = highlightQuery,
                    Snippets                 = snippets,
                    AlternateField           = alt,
                    Fragsize                 = fragsize,
                    RequireFieldMatch        = true,
                    RegexSlop                = 4.12,
                    RegexPattern             = "\\.",
                    RegexMaxAnalyzedChars    = 8000,
                    UsePhraseHighlighter     = true,
                    UseFastVectorHighlighter = true,
                    MergeContiguous          = true,
                    MaxAnalyzedChars         = 12,
                    HighlightMultiTerm       = true,
                    MaxAlternateFieldLength  = 22,
                    Fragmenter               = SolrHighlightFragmenter.Regex
                }
            });
        }