Uploaded image for project: 'IGB'
  1. IGB
  2. IGBF-2225

Investigate: What exactly gets searched when users use Search Box

    Details

    • Type: Task
    • Status: Closed (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      When users search the Cytoscape App Store using the name of an author (e.g., "Scooter") or a word that is contained in an App short description (e.g., "adjacency"), results are returned.

      When users search the IGB App Store with the name of an author (e.g., "loraine") or a word that is contained in an App short description (e.g., "InterPro"), no results are returned.

      It is not clear what the Search feature is actually doing.

      For this task, please do two things:

      • inspect the IGB App Store code and report back: What is actually getting searched?
      • inspect the Cytoscape App Store code and report back: How is search implemented there? Which search tooling are they using - is it still haystack and whoosh?

        Attachments

          Issue Links

            Activity

            ann.loraine Ann Loraine created issue -
            ann.loraine Ann Loraine made changes -
            Field Original Value New Value
            Epic Link IGBF-1388 [ 17463 ]
            ann.loraine Ann Loraine made changes -
            Link This issue relates to IGBF-1674 [ IGBF-1674 ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Assignee Sameer Shanbhag [ sameer ]
            ann.loraine Ann Loraine made changes -
            Rank Ranked higher
            ann.loraine Ann Loraine made changes -
            Assignee Sameer Shanbhag [ sameer ]
            ann.loraine Ann Loraine made changes -
            Assignee Sameer Shanbhag [ sameer ]
            sameer Sameer Shanbhag (Inactive) made changes -
            Status To-Do [ 10305 ] In Progress [ 3 ]
            Hide
            sameer Sameer Shanbhag (Inactive) added a comment - - edited

            Each and every Model which is Eligible for search has

            1. Search Schema and Search Key which is used by Haystack and Whoosh to do the Searching

            Example
            ```
            search_schema = ('fullname', )
            search_key = 'name'
            ```

            2. The search is carried out on the dields mention in the file apps/search_indexes.py

            ```
            class AppIndex(indexes.SearchIndex, indexes.Indexable):
            text = indexes.EdgeNgramField(document = True, use_template = True)
            Bundle_Name = indexes.CharField(model_attr='Bundle_Name',null=True)

            categories = indexes.MultiValueField(model_attr = 'categories', null=True)

            stars = indexes.IntegerField(model_attr = 'stars',null = True)

            def get_model(self):
            return App

            def prepare_tags(self, obj):
            return [tag.id for tag in obj.categories.all()]
            ```

            3. Search Template can be located at templates/search/indexes/apps/app_text.txt
            This file is responsible to handle the Indexing part of the Search when the app is first added to the search index by Whoosh

            ```
            {{ object.Bundle_Name }}
            {{ object.downloads }}
            {{ object.stars }}

            {% for tag in object.app.categories.all %}

            {{ tag.name }}

            {% endfor %}

            ```

            Searching can be done on more specific fields if we figure out how the search indexing works and then addig it to Releases model rather than Apps model.

            Show
            sameer Sameer Shanbhag (Inactive) added a comment - - edited Each and every Model which is Eligible for search has 1. Search Schema and Search Key which is used by Haystack and Whoosh to do the Searching Example ``` search_schema = ('fullname', ) search_key = 'name' ``` 2. The search is carried out on the dields mention in the file apps/search_indexes.py ``` class AppIndex(indexes.SearchIndex, indexes.Indexable): text = indexes.EdgeNgramField(document = True, use_template = True) Bundle_Name = indexes.CharField(model_attr='Bundle_Name',null=True) categories = indexes.MultiValueField(model_attr = 'categories', null=True) stars = indexes.IntegerField(model_attr = 'stars',null = True) def get_model(self): return App def prepare_tags(self, obj): return [tag.id for tag in obj.categories.all()] ``` 3. Search Template can be located at templates/search/indexes/apps/app_text.txt This file is responsible to handle the Indexing part of the Search when the app is first added to the search index by Whoosh ``` {{ object.Bundle_Name }} {{ object.downloads }} {{ object.stars }} {% for tag in object.app.categories.all %} {{ tag.name }} {% endfor %} ``` Searching can be done on more specific fields if we figure out how the search indexing works and then addig it to Releases model rather than Apps model.
            sameer Sameer Shanbhag (Inactive) made changes -
            Status In Progress [ 3 ] Needs 1st Level Review [ 10005 ]
            sameer Sameer Shanbhag (Inactive) made changes -
            Assignee Sameer Shanbhag [ sameer ]
            ann.loraine Ann Loraine made changes -
            Status Needs 1st Level Review [ 10005 ] First Level Review in Progress [ 10301 ]
            ann.loraine Ann Loraine made changes -
            Status First Level Review in Progress [ 10301 ] Ready for Pull Request [ 10304 ]
            ann.loraine Ann Loraine made changes -
            Status Ready for Pull Request [ 10304 ] Pull Request Submitted [ 10101 ]
            ann.loraine Ann Loraine made changes -
            Status Pull Request Submitted [ 10101 ] Reviewing Pull Request [ 10303 ]
            ann.loraine Ann Loraine made changes -
            Status Reviewing Pull Request [ 10303 ] Merged Needs Testing [ 10002 ]
            ann.loraine Ann Loraine made changes -
            Status Merged Needs Testing [ 10002 ] Post-merge Testing In Progress [ 10003 ]
            ann.loraine Ann Loraine made changes -
            Resolution Done [ 10000 ]
            Status Post-merge Testing In Progress [ 10003 ] Closed [ 6 ]
            ann.loraine Ann Loraine made changes -
            Link This issue relates to IGBF-2242 [ IGBF-2242 ]
            ann.loraine Ann Loraine made changes -
            Assignee Sameer Shanbhag [ sameer ]

              People

              • Assignee:
                sameer Sameer Shanbhag (Inactive)
                Reporter:
                ann.loraine Ann Loraine
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: