{ "info": { "author": "Malthe Borch and Mustapha Benali", "author_email": "mborch@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Zope2", "Programming Language :: Python" ], "description": "Overview\n========\n\nPlone integration for Google Search Appliance.\n\nCompatible with Plone 4.\n\n\nInstallation\n------------\n\nUse Plone's setup tool to install the profile: \"Integration to Google\nSearch Appliance\".\n\nThen visit the control panel to configure your appliance. Also in the\ncontrol panel are various settings to customize the site integration.\n\n\nWhy?\n----\n\nThis package exists to provide a light-weight integration between\nPlone and a Google Search Appliance service. Its philosophy is to let\nthe appliance do the heavy lifting instead of Plone. The \"64\" postfix\ncorresponds to the version of the search appliance software at the\ntime of writing: 6.4.\n\nThere's an alternative in Matous Hora's `collective.gsa\n`_ package which takes a\ndifferent approach and is in return a much more complex piece of\nsoftware. The package also integrates more closely with Plone by\npatching into the default portal catalog.\n\nThe present package -- ``collective.gsa64`` -- is about site search\nand just that.\n\n\nFeed protocol implementation\n----------------------------\n\nThe package comes with an implementation for the `Feed Protocol API\n`_. When\na content item for which search is enabled (use Plone's search control\npanel to configure) is created, modified or deleted, a feed is sent to\nthe search appliance to update the status.\n\nThere are two modes of operation: *web* (implicitly enabled for a feed\nwith the name ``\"web\"``) and *url and metadata* mode (any other\nname).\n\nThe metadata for the second mode is drawn directly from HTML using the\n``plone.htmlhead`` content provider. As such this corresponds directly\nto the metadata which would be indexed using crawling.\n\nYou can enable include the standard `Dublin Core\n`_\nmetadata using the *site* control panel.\n\nAn example of a viewlet definition in ZCML that renders additional\nmetadata::\n\n \n\nNote that feed requests are issued after the browser request has ended\nand will not delay server response.\n\n\nSearch view\n-----------\n\nThe setup script adds a ``Python Script`` object to the portal root\nwith the id ``\"search\"``. This takes over the normal skin lookup and\nredirects the traversal to the ``@@gsa-search`` view.\n\nYou can enable or disable the search appliance results view (and\noperation in general) using the control panel.\n\nThe results view is by default generated using an included browser\nview with a template that generates markup similar to Plone's own\nsearch results view. However, it's also possible to have an XSLT\ntransform applied directly to the XML result document and show this\ninstead.\n\nFor custom projects, it may be necessary to subclass the default\nsearch view implementation. Here's an example of a modified query::\n\n from collective.gsa64.browser import search\n\n class SearchView(search.SearchView):\n def build_query(self):\n query = super(SearchView, self).build_query()\n\n # always include hits for \"plone\"\n query['q'] = '(%s) OR plone' % query['q']\n\n return query\n\n\nIt may be desirable to change the display of the individual search\nresults. You can accomplish this by providing your own search\ntemplates and fill out the ``\"result\"`` METAL slot::\n\n class SearchView(search.SearchView):\n template = ViewPageTemplateFile(\"templates/search.pt\")\n\n @property\n def master_search_template(self):\n return super(SearchView, self).template\n\nThe ``templates/search.pt`` template::\n\n \n\n \n\n

\n\n \n\n \n\nEach ``result`` object contains the following keys:\n\n- ``description``: HTML document description\n- ``heading``: HTML document title\n- ``url``: Document's display URL\n- ``creator``: DC creator value\n- ``normalized_content_type``: Normalized Plone content type id\n- ``metadata``: Dictionary that maps metadata keys to values\n\n\nContent types filter\n---------------------\n\nPlone's standard *types not searched* setting is applied to HTML\noutput via a browser viewlet ``\"meta-robots\"`` which renders a\n``noarchive`` meta tag for content types excluded from search.\n\n\nCredits\n-------\n\nThis package was designed and developed by the following authors.\n\n- Malthe Borch\n- Mustapha Benali\n\nDevelopment was funded by `Headnet `_.\n\n\nHistory\n=======\n\n1.0-beta4 (2011-11-30)\n----------------------\n\nFeatures:\n\n- Added settings for client features:\n\n KeyMatch, related queries, filters, etc.\n\n These are available in the control panel.\n [mustapha]\n\nBugfixes:\n\n- Handle the case where the product is not installed.\n [mustapha]\n\n- Handle the case of empty description or heading.\n [mustapha]\n\n- Added browser layer to enable browser components through the setup.\n [mustapha]\n\n\n1.0-beta3 (2011-01-10)\n----------------------\n\n- Recover from component lookup errors that result from trying to\n render HTML meta-tags for use as metadata.\n\n- Disable search result filtering (at least until we can provide an\n interface that presents the normal 'we have filtered your results'\n dialogue).\n\n- Ignore event handler if registry is unavailable (missing setup of\n ``plone.app.registry``).\n\n- Fixed an issue where a ``checkPermission`` call would raise an\n exception because no interaction was established yet (for instance\n in a test setup).\n\n\n1.0-beta2 (2010-12-20)\n----------------------\n\n- If an HTML meta-tag has no content attribute, drop it from the feed.\n\n\n1.0-beta1 (2010-12-17)\n----------------------\n\n- Initial public release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "plone gsa google search feeds", "license": "GPL", "maintainer": null, "maintainer_email": null, "name": "collective.gsa64", "package_url": "https://pypi.org/project/collective.gsa64/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/collective.gsa64/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/collective.gsa64/1.0-beta4/", "requires_dist": null, "requires_python": null, "summary": "Feeds protocol implementation and search integration", "version": "1.0-beta4" }, "last_serial": 787838, "releases": { "1.0-beta1": [ { "comment_text": "", "digests": { "md5": "4a8126274e828a30fc8ff73667520e27", "sha256": "246be00eecc429268d0ceeb900fb1813653e213fabef706bae7f9722e377f039" }, "downloads": -1, "filename": "collective.gsa64-1.0-beta1.tar.gz", "has_sig": false, "md5_digest": "4a8126274e828a30fc8ff73667520e27", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35354, "upload_time": "2010-12-17T11:54:25", "url": "https://files.pythonhosted.org/packages/48/c7/1a9dd654dd53203cee73b5344d830bcf0320b8af781602dadff56c6a4b61/collective.gsa64-1.0-beta1.tar.gz" } ], "1.0-beta2": [ { "comment_text": "", "digests": { "md5": "234a16bebe26e8a855b2d378662ad2ed", "sha256": "14ad2e8d8e4aaa6df6471e4a7b7dc9b61eaeb85e916117a460fb8c794aefb0ed" }, "downloads": -1, "filename": "collective.gsa64-1.0-beta2.tar.gz", "has_sig": false, "md5_digest": "234a16bebe26e8a855b2d378662ad2ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35486, "upload_time": "2010-12-20T17:28:38", "url": "https://files.pythonhosted.org/packages/a1/9d/0237fc1a068fa0ad30cb3a48a5d7c8d8305c85431700377a3a99e5c67bd9/collective.gsa64-1.0-beta2.tar.gz" } ], "1.0-beta3": [ { "comment_text": "", "digests": { "md5": "80ca49660890d5e87f2381ccc2873342", "sha256": "b0f471c1600383eb058e656a43ad9fe44cd4df5795d24dffa4fa7ea19e5fb438" }, "downloads": -1, "filename": "collective.gsa64-1.0-beta3.tar.gz", "has_sig": false, "md5_digest": "80ca49660890d5e87f2381ccc2873342", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36120, "upload_time": "2011-01-10T15:32:35", "url": "https://files.pythonhosted.org/packages/60/ed/e9ce45e2337c067af7afa83ec91aefb519791118c57864ac12215d22f9b2/collective.gsa64-1.0-beta3.tar.gz" } ], "1.0-beta4": [ { "comment_text": "", "digests": { "md5": "9c4cd1ccdebc2dc5b5e79e0d001cd451", "sha256": "eab6dece9b83ea404de5aab6c7df064331dce2329b2ee651a5533f38fec7466e" }, "downloads": -1, "filename": "collective.gsa64-1.0-beta4.tar.gz", "has_sig": false, "md5_digest": "9c4cd1ccdebc2dc5b5e79e0d001cd451", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37013, "upload_time": "2011-11-30T13:08:01", "url": "https://files.pythonhosted.org/packages/6e/0d/8772612860a9c97bdd38f18f8ddeb0834aceac5ab2a5764bfe1242239495/collective.gsa64-1.0-beta4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9c4cd1ccdebc2dc5b5e79e0d001cd451", "sha256": "eab6dece9b83ea404de5aab6c7df064331dce2329b2ee651a5533f38fec7466e" }, "downloads": -1, "filename": "collective.gsa64-1.0-beta4.tar.gz", "has_sig": false, "md5_digest": "9c4cd1ccdebc2dc5b5e79e0d001cd451", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37013, "upload_time": "2011-11-30T13:08:01", "url": "https://files.pythonhosted.org/packages/6e/0d/8772612860a9c97bdd38f18f8ddeb0834aceac5ab2a5764bfe1242239495/collective.gsa64-1.0-beta4.tar.gz" } ] }