Ejemplo n.º 1
0
 public SearchEngine(string indexName, Uri uri, bool indexCreated)
 {
     this.indexName = indexName;
     elastic        = new Elastic(indexName, uri);
     if (!indexCreated)
     {
         elastic.CreateIndex <Document>(mapSelector: CreateMapping).Validate();
     }
 }
Ejemplo n.º 2
0
        public List <QueryContainer> MakeMatchQueryList(List <string> words)
        {
            var list = new List <QueryContainer>();

            foreach (var word in words)
            {
                list.Add(Elastic.MakeMatchQuery(query: word, field: "content"));
            }
            return(list);
        }
Ejemplo n.º 3
0
        public List <string> Search(List <string> normals, List <string> pluses, List <string> minuses)
        {
            var mustList = MakeMatchQueryList(normals);

            mustList.Add(Elastic.MakeBoolQuery(
                             should: MakeMatchQueryList(pluses).ToArray()
                             ));
            var queryContainer = Elastic.MakeBoolQuery(
                must: mustList.ToArray(),
                mustNot: MakeMatchQueryList(minuses).ToArray()
                );

            var response = elastic.GetResponseOfQuery <Document>(queryContainer).Validate();

            return(response.Hits.ToList().Select(x => x.Source.documentId).ToList());
        }