예제 #1
0
        public void CRUD()
        {
            var pool               = new SingleNodeConnectionPool(new Uri("http://localhost:9300"));
            var connection         = new HttpConnection();
            var connectionSettings =
                new ConnectionSettings(pool, connection, (serializer, settings) =>
            {
                //return new MyFirstCustomJsonNetSerializer(serializer, settings);
                return(JsonNetSerializer.Default(serializer, settings));
            })
                // new ConnectionSettings(pool, connection)
                .DisableAutomaticProxyDetection()
                .EnableHttpCompression()
                .DisableDirectStreaming()
                .PrettyJson()
                .RequestTimeout(TimeSpan.FromMinutes(2));

            var client = new ElasticClient(connectionSettings);

            var service = new ElasticFullTextService(client);

            var indexName = Guid.NewGuid().ToString();

            service.CreateIndex(indexName);

            LogDocument doc = null;

            for (int i = 0; i < 500; i++)

            {
                doc = new LogDocument()
                {
                    Body = $"My first document into index, position is number{i}"
                };
                service.AddDocument(indexName, doc);
            }

            var item = service.GetDocumentRaw(indexName, doc.Id.ToString());

            Assert.Equal(item["Id"], doc.Id.ToString());

            //search

            var items = service.SearchDocumentsRaw(indexName, "number1*", 0, 140);

            Assert.Equal(items.Count, 111);
        }
예제 #2
0
        private void RegisterElastiServices(IServiceCollection services)
        {
            var pool               = new SingleNodeConnectionPool(new Uri(this.config.Url));
            var connection         = new HttpConnection();
            var connectionSettings =
                new ConnectionSettings(pool, connection, (serializer, settings) =>
            {
                return(JsonNetSerializer.Default(serializer, settings));
            })
                // new ConnectionSettings(pool, connection)
                .DisableAutomaticProxyDetection()
                .EnableHttpCompression()
                .DisableDirectStreaming()
                .PrettyJson()
                .RequestTimeout(TimeSpan.FromMinutes(2));

            services.AddSingleton <ElasticClient>(new ElasticClient(connectionSettings));
            services.AddSingleton <FullTextService, ElasticFullTextService>();
        }
예제 #3
0
        protected ElasticsearchSinkTestsBase()
        {
            _seenHttpPosts = new List <string>();
            _seenHttpHeads = new List <int>();
            _seenHttpPuts  = new List <Tuple <Uri, string> >();

            var connectionPool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));

            _connection = new ConnectionStub(_seenHttpPosts, _seenHttpHeads, _seenHttpPuts, () => _templateExistsReturnCode);
            _serializer = JsonNetSerializer.Default(LowLevelRequestResponseSerializer.Instance, new ConnectionSettings(connectionPool, _connection));

            _options = new ElasticsearchSinkOptions(connectionPool)
            {
                BatchPostingLimit = 2,
                //Period = TinyWait,
                Connection   = _connection,
                Serializer   = _serializer,
                PipelineName = "testPipe",
            };
        }
예제 #4
0
 public JsonNetSerializerTests() : base(JsonNetSerializer.Default(LowLevelRequestResponseSerializer.Instance, new ConnectionSettings()))
 {
 }