[Grok-dev] Assertion error when quering TextIndex

Kevin Smith kevin at mcweekly.com
Tue Jun 26 13:38:57 EDT 2007



Sebastian Ware wrote:
> 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)
>                      )
Since it's a named catalog, "proton_catalog" needs to be referenced 
explicitly.

def search_content(self, search_term):
    result = Query().searchResults(
                     Text( ('proton_catalog', '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