Beispiel #1
0
        /// <summary>
        ///
        /// </summary>
        /// <remarks></remarks>
        /// <seealso cref=""/>
        public static void Reset()
        {
            isLoaded  = false;
            configXML = null;
            _Reader   = BexisIndexSearcher.getIndexReader();

            sIO = new searchInitObjects();

            AllFacetsDefault     = sIO.AllFacets;
            AllPropertiesDefault = sIO.AllProperties;
            AllCategoriesDefault = sIO.AllCategories;

            numericProperties = new HashSet <string>();

            facetXmlNodeList      = new List <XmlNode>();
            propertyXmlNodeList   = new List <XmlNode>();
            categoryXmlNodeList   = new List <XmlNode>();
            generalXmlNodeList    = new List <XmlNode>();
            headerItemXmlNodeList = new List <XmlNode>();
        }
Beispiel #2
0
        /// <summary>
        ///
        /// </summary>
        /// <remarks></remarks>
        /// <seealso cref=""/>
        private static void Load()
        {
            configXML = new XmlDocument();

            configXML.Load(FileHelper.ConfigFilePath);
            XmlNodeList fieldProperties = configXML.GetElementsByTagName("field");

            Category categoryDefault = new Category();

            categoryDefault.Name         = "All";
            categoryDefault.Value        = "All";
            categoryDefault.DisplayName  = "All";
            categoryDefault.DefaultValue = "nothing";
            AllCategoriesDefault.Add(categoryDefault);
            foreach (XmlNode fieldProperty in fieldProperties)
            {
                if (!fieldProperty.Attributes.GetNamedItem("type").Value.ToLower().Equals("primary_data_field"))
                {
                    String headerItem = fieldProperty.Attributes.GetNamedItem("header_item").Value;
                    String storeItem  = fieldProperty.Attributes.GetNamedItem("store").Value;
                    if (headerItem.ToLower().Equals("yes") && storeItem.ToLower().Equals("yes"))
                    {
                        headerItemXmlNodeList.Add(fieldProperty);
                    }

                    String fieldType = fieldProperty.Attributes.GetNamedItem("type").Value;
                    String fieldName = fieldProperty.Attributes.GetNamedItem("lucene_name").Value;

                    String primitiveType = fieldProperty.Attributes.GetNamedItem("primitive_type").Value;
                    if (!primitiveType.ToLower().Equals("string"))
                    {
                        numericProperties.Add(fieldName.ToLower());
                    }

                    if (fieldType.ToLower().Equals("facet_field"))
                    {
                        facetXmlNodeList.Add(fieldProperty);
                        Facet cDefault = new Facet();
                        cDefault.Name        = fieldName;
                        cDefault.Text        = fieldName;
                        cDefault.Value       = fieldName;
                        cDefault.DisplayName = fieldProperty.Attributes.GetNamedItem("display_name").Value;

                        cDefault.Childrens = new List <Facet>();
                        List <Facet> lcDefault = new List <Facet>();
                        try
                        {
                            _Reader = BexisIndexSearcher.getIndexReader();
                            Query query = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "id", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_30)).Parse("*:*");
                            using (SimpleFacetedSearch sfs = new SimpleFacetedSearch(_Reader, new string[] { "facet_" + fieldName }))
                            {
                                SimpleFacetedSearch.Hits hits = sfs.Search(query);

                                int cCount = 0;
                                foreach (SimpleFacetedSearch.HitsPerFacet hpg in hits.HitsPerFacet)
                                {
                                    if (!hpg.Name.ToString().Equals(""))
                                    {
                                        Facet ccDefault = new Facet();
                                        ccDefault.Name  = hpg.Name.ToString();
                                        ccDefault.Text  = hpg.Name.ToString();
                                        ccDefault.Value = hpg.Name.ToString();
                                        ccDefault.Count = (int)hpg.HitCount;
                                        if (ccDefault.Count > 0)
                                        {
                                            cCount++;
                                        }
                                        cDefault.Childrens.Add(ccDefault);
                                    }
                                }
                                cDefault.Count = cCount;
                                AllFacetsDefault.Add(cDefault);
                            }
                        }
                        catch
                        {
                        }
                    }

                    else if (fieldType.ToLower().Equals("property_field"))
                    {
                        propertyXmlNodeList.Add(fieldProperty);
                        Property cDefault = new Property();
                        //c.Id = x.Attributes[Property.ID].InnerText;
                        cDefault.Name            = fieldProperty.Attributes.GetNamedItem("lucene_name").Value;
                        cDefault.DisplayName     = fieldProperty.Attributes.GetNamedItem("display_name").Value;
                        cDefault.DisplayTitle    = fieldProperty.Attributes.GetNamedItem("display_name").Value;
                        cDefault.DataSourceKey   = fieldProperty.Attributes.GetNamedItem("metadata_name").Value;
                        cDefault.UIComponent     = fieldProperty.Attributes.GetNamedItem("uiComponent").Value;;
                        cDefault.AggregationType = fieldProperty.Attributes.GetNamedItem("aggregationType").Value;
                        cDefault.DefaultValue    = "All";
                        cDefault.DataType        = fieldProperty.Attributes.GetNamedItem("primitive_type").Value;
                        if (cDefault.UIComponent.ToLower().Equals("range") && cDefault.DataType.ToLower().Equals("date"))
                        {
                            String direction = fieldProperty.Attributes.GetNamedItem("direction").Value;

                            if (direction.ToLower().Equals("increase"))
                            {
                                cDefault.Direction = Direction.increase;
                            }
                            else
                            {
                                cDefault.Direction = Direction.decrease;
                            }
                        }


                        Query query = new QueryParser(Lucene.Net.Util.Version.LUCENE_30, "id", new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29)).Parse("*:*");
                        try
                        {
                            _Reader = BexisIndexSearcher.getIndexReader();


                            using (SimpleFacetedSearch sfs = new SimpleFacetedSearch(_Reader, new string[] { "property_" + fieldName }))
                            {
                                SimpleFacetedSearch.Hits hits      = sfs.Search(query);
                                List <string>            laDefault = new List <string>();
                                foreach (SimpleFacetedSearch.HitsPerFacet hpg in hits.HitsPerFacet)
                                {
                                    if (!string.IsNullOrEmpty(hpg?.Name?.ToString()))
                                    {
                                        laDefault.Add(hpg.Name.ToString());
                                    }
                                }

                                //if (!cDefault.UIComponent.ToLower().Equals("range")) { laDefault.Add("All"); };
                                laDefault.Sort();
                                cDefault.Values = laDefault;
                                AllPropertiesDefault.Add(cDefault);
                            }
                        }
                        catch
                        {
                            throw;
                        }
                    }
                    else if (fieldType.ToLower().Equals("category_field"))
                    {
                        categoryXmlNodeList.Add(fieldProperty);

                        Category cDefault = new Category();
                        cDefault.Name         = fieldProperty.Attributes.GetNamedItem("lucene_name").Value;
                        cDefault.DisplayName  = fieldProperty.Attributes.GetNamedItem("display_name").Value;
                        cDefault.Value        = fieldProperty.Attributes.GetNamedItem("lucene_name").Value;;
                        cDefault.DefaultValue = "nothing";

                        AllCategoriesDefault.Add(cDefault);
                    }
                    else if (fieldType.ToLower().Equals("general_field"))
                    {
                        generalXmlNodeList.Add(fieldProperty);
                    }
                }
                else if (fieldProperty.Attributes.GetNamedItem("type").Value.ToLower().Equals("primary_data_field"))
                {
                    categoryXmlNodeList.Add(fieldProperty);
                    Category cDefault = new Category();
                    cDefault.Name         = fieldProperty.Attributes.GetNamedItem("lucene_name").Value;
                    cDefault.DisplayName  = fieldProperty.Attributes.GetNamedItem("display_name").Value;
                    cDefault.Value        = fieldProperty.Attributes.GetNamedItem("lucene_name").Value;;
                    cDefault.DefaultValue = "nothing";
                    AllCategoriesDefault.Add(cDefault);
                }
            }
        }