+1-888-365-2779
Try Now
More in this section

Forums / Developing with Sitefinity / Number of page indexes, practical limit

Number of page indexes, practical limit

4 posts, 0 answered
  1. olav
    olav avatar
    76 posts
    Registered:
    22 Jan 2007
    25 Sep 2010
    Link to this post
    Hi,
    One of our projects has 6 indexes, one starting at the root page, and the rest starting in its own page node below the root, for example "Products", "Company" and "Support". Each of the 6 pages has search/result boxes using a index returning results from further down the hierarchy, not from siblings. So far - fine.

    Now, I'd like to place more search/result boxes further down the hierarchy, also returning results from below. I would want ~/Support/Library/ to return less than ~/Support/, and ~/Support/Library/ProductA/ would return results disjoint from ~/Support/Library/ProductB/.

    Can I go on adding indexes (totally 20 or so?), or would even page display slow down considerably before we reach, say, a total of 2000 pages in this web?
    I have previously used indexing/search services (MS) that allowed setting search a start node lower in the hierarchy (typically for less frequently used narrowed searches) for some particular search, leaving us with a considerably lower number of indexes.

    I would appreciate ideas!
    Thanks.
  2. Ivan Dimitrov
    Ivan Dimitrov avatar
    16072 posts
    Registered:
    25 Nov 2016
    27 Sep 2010
    Link to this post
    Hello olav,

    Out of the box you can set from which page the index will start looking for any content. If this page(node) has a child pages they will be included in the search results. Generally you can add many indexes and set them for each page you want, but this will require to set your search box and search result each time you crate a new index. Another option would be crating a custom index that allows you to select only a single page that will be indexed and excluding all child nodes.

    All the best,
    Ivan Dimitrov
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
  3. olav
    olav avatar
    76 posts
    Registered:
    22 Jan 2007
    27 Sep 2010
    Link to this post
    Thank you Ivan, but I can't see how you can make this work out of the box.

    Here's a more detailed sample where we consider one index used by two pages having their own search/result boxes:

    - A index is created with start at the page ~/NodeA.aspx
    - The page ~/NodeA.aspx has a search box, set to use this index, with the Search results page property set to itself, with its own result box.
    - The page ~/NodeA/SubNode1.aspx is set to use the same index. It has a search box, set to use this index, also with the Search results page property set to itself, and with its own result box.

    The problem is that ~/NodeA/SubNode1.aspx also returns results from ~/NodeA/SubNode2.aspx.

    I would love a property out of the box where it is possible to restrict return results above a point in the hierarchy. (or simply the node position where the search box is positioned)
  4. Ivan Dimitrov
    Ivan Dimitrov avatar
    16072 posts
    Registered:
    25 Nov 2016
    27 Sep 2010
    Link to this post
    Hi olav,

    If this page(node) has child pages they will be included in the search results - you cannot avoid this using only UI configurations. You need a custom index that allows you to select only a single page that will be indexed and excluding all child nodes as an option parameter of boolean type. This will allow you to choose starting node for your index and set whether child pages will be indexed or not. You should create a selector from where you can chose which child nodes will be included or not.

    1. You have to create a custom provider that inherits from IIndexingServiceClientExtended.
    Implement public method IIndexerInfo[] GetContentToIndex()

    2. In this method you should pass only a single page ID or Guid Array of pages  you want to index.

    3. To pass the ID you should have a SettingsControl which data you can retrieve inside Initialize method of your custom provider

    You might find this post useful.

    Regards,
    Ivan Dimitrov
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
Register for webinar
4 posts, 0 answered