[Grok-dev] Assertion error when quering TextIndex
Sebastian Ware
sebastian at urbantalk.se
Tue Jun 26 13:28:15 EDT 2007
and I do have the Index:
Catalog statistics
Index Document Count Word Count
body 1 1
text_body 1 50
sebastian
26 jun 2007 kl. 19.25 skrev Sebastian Ware:
> Maybe I am making a silly mistake, but I am doing this...
>
> from hurry.query.query import Query, Text
>
> class ContentIndexes(grok.Indexes):
> grok.site(ProtonCMS)
> grok.context(interfaces.IProtonObject)
> grok.name('proton_catalog')
>
> text_body = index.Text(attribute='body')
> body = index.Field(attribute='body')
>
> ...and this works...
>
> def search_content(self, search_term):
> result = Query().searchResults(
> query.Eq(('proton_catalog', 'body'), search_term)
> )
> return result
>
> ...but this gives a ComponentLookupError...
>
> def search_content(self, search_term):
> result = Query().searchResults(
> Text( ('', 'text_body'), search_term)
> )
> return result
>
> ...the traceback...
>
> File "/Users/sebastianware/GrokProjects/ProtonCMS/src/protoncms/
> app.py", line 31, in search_content
> result = Query().searchResults(Text( ('', 'text_body'),
> search_term))
> File "/Users/sebastianware/GrokProjects/ProtonCMS/eggs/
> hurry.query-0.9.2-py2.4.egg/hurry/query/query.py", line 20, in
> searchResults
> results = query.apply()
> File "/Users/sebastianware/GrokProjects/ProtonCMS/eggs/
> hurry.query-0.9.2-py2.4.egg/hurry/query/query.py", line 128, in apply
> index = self.getIndex()
> File "/Users/sebastianware/GrokProjects/ProtonCMS/eggs/
> hurry.query-0.9.2-py2.4.egg/hurry/query/query.py", line 123, in
> getIndex
> index = super(Text, self).getIndex()
> File "/Users/sebastianware/GrokProjects/ProtonCMS/eggs/
> hurry.query-0.9.2-py2.4.egg/hurry/query/query.py", line 113, in
> getIndex
> catalog = zapi.getUtility(ICatalog, self.catalog_name)
> File "/opt/zope3.3/lib/python/zope/component/_api.py", line 207,
> in getUtility
> raise ComponentLookupError(interface, name)
> ComponentLookupError: (<InterfaceClass
> zope.app.catalog.interfaces.ICatalog>, '')
>
>
> Mvh Sebastian
>
> 26 jun 2007 kl. 18.43 skrev Kevin Smith:
>
>> Here's some sample code.
>>
>> # setup index
>> class SearchableTextIndex(grok.Indexes):
>> grok.site(MySite)
>> grok.context(ISearchableText)
>>
>> searchabletext = index.Text()
>>
>> # search function
>> from hurry.query.query import Query, Text
>> def search_text(text):
>> results = Query().searchResults(
>> Text( ('', 'searchabletext'), text)
>> )
>> return results
>>
>>
>> HTH,
>>
>> Kevin Smith
>>
>> Sebastian Ware wrote:
>>> I can't find an example in the DocTest that performs a TextIndex
>>> search. It only has FieldIndex, SetIndex and ValueIndex
>>> (hurry.query.0.9.2). I try to mimic the FieldIndex search (that
>>> works) but I get an assertion error.
>>>
>>> I can see the "text_body' index in the Zope 3 management screens,
>>> and it would shows 3 documents and 53 words indexed.
>>>
>>> This is the traceback:
>>>
>>> File "/Users/sebastianware/GrokProjects/ProtonCMS/src/protoncms/
>>> app.py", line 32, in content_list
>>> result = Query().searchResults(query.Eq(('proton_catalog',
>>> 'text_body'), search_term))
>>> File "/Users/sebastianware/GrokProjects/ProtonCMS/eggs/
>>> hurry.query-0.9.2-py2.4.egg/hurry/query/query.py", line 20, in
>>> searchResults
>>> results = query.apply()
>>> File "/Users/sebastianware/GrokProjects/ProtonCMS/eggs/
>>> hurry.query-0.9.2-py2.4.egg/hurry/query/query.py", line 144, in
>>> apply
>>> return self.getIndex().apply((self.value, self.value))
>>> File "/Users/sebastianware/GrokProjects/ProtonCMS/eggs/
>>> hurry.query-0.9.2-py2.4.egg/hurry/query/query.py", line 134, in
>>> getIndex
>>> assert IFieldIndex.providedBy(index)
>>> AssertionError
>>>
>>> Mvh Sebastian
>>>
>>>
>>>
>>> _______________________________________________
>>> Grok-dev mailing list
>>> Grok-dev at zope.org
>>> http://mail.zope.org/mailman/listinfo/grok-dev
>>>
>
> _______________________________________________
> Grok-dev mailing list
> Grok-dev at zope.org
> http://mail.zope.org/mailman/listinfo/grok-dev
More information about the Grok-dev
mailing list