Giter Site home page Giter Site logo

Comments (1)

NightOwl888 avatar NightOwl888 commented on July 29, 2024

As I mentioned previously, the values that are specified for selections in a RangeFacetHandler must correspond to the range strings that are specified when creating the handler.

// Specify range handler
categoryFacetHandler = new RangeFacetHandler(category, new List<string> { "[Articoli TO Clienti]", "[Clienti TO *]" });

// Specify selections
sel1.AddValue("[Articoli TO Clienti]");

Corrected version of CategoryFacetNavigation:

private static int CategoryFacetNavigation(Type facetHandlerType)
{
    // Definizione facce.
    string category = "Category";
    IFacetHandler categoryFacetHandler;
    if (facetHandlerType == typeof(SimpleFacetHandler))
    {
        categoryFacetHandler = new SimpleFacetHandler(category);
    }
    else if (facetHandlerType == typeof(MultiValueFacetHandler))
    {
        categoryFacetHandler = new MultiValueFacetHandler(category);
    }
    else if (facetHandlerType == typeof(RangeFacetHandler))
    {
        categoryFacetHandler = new RangeFacetHandler(category, new List<string> { "[Articoli TO Clienti]", "[Clienti TO *]" }); 
    }
    else
    {
        throw new InvalidOperationException("Unknown facet.");
    }

    ICollection<IFacetHandler> handlerList = new IFacetHandler[] { categoryFacetHandler };
    string indexDir = @"../../../data/index";
    using (Lucene.Net.Store.Directory idx = FSDirectory.Open(new System.IO.DirectoryInfo(indexDir)))
    {
        using (IndexReader reader = IndexReader.Open(idx, true))
        {
            using (BoboIndexReader boboReader = BoboIndexReader.GetInstance(reader, handlerList))
            {
                // Request.
                BrowseRequest browseRequest = new BrowseRequest();
                browseRequest.Count = 10;
                browseRequest.Offset = 0;

                BrowseSelection sel1 = new BrowseSelection(category);
                if (facetHandlerType == typeof(RangeFacetHandler))
                {
                    sel1.AddValue("[Articoli TO Clienti]");
                }
                else
                {
                    sel1.AddValue("Articoli");
                    sel1.AddValue("Clienti");
                    sel1.AddNotValue("Ordini");
                    sel1.SelectionOperation = BrowseSelection.ValueOperation.ValueOperationOr;
                }
                browseRequest.AddSelection(sel1);

                // Query.
                MatchAllDocsQuery query = new MatchAllDocsQuery();

                // Add the facet output specs.
                FacetSpec spec1 = new FacetSpec();
                spec1.OrderBy = FacetSpec.FacetSortSpec.OrderValueAsc;
                spec1.MaxCount = 20;
                browseRequest.SetFacetSpec(category, spec1);

                // Browse.
                IBrowsable browser = new BoboBrowser(boboReader);
                BrowseResult result = browser.Browse(browseRequest);

                // Result.
                return result.NumHits;
            }
        }
    }
}

from bobobrowse.net.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.