Discussion:
[Erp5-dev] SQLCatalog - search_mode fails - temporary patch
bartek
2007-02-02 11:31:35 UTC
Permalink
Hello

After recent refactoring, portal_catalog fails if given search_mode
parameter. I think we should patch it as follows, to make it work at
least in a basic way (with only general search_mode setting, not per
column). And maybe think of a better solution - or is a more
comprehensive refactoring still planned?

Bartek


Index: ZSQLCatalog/SQLCatalog.py
===================================================================
--- ZSQLCatalog/SQLCatalog.py (wersja 12218)
+++ ZSQLCatalog/SQLCatalog.py (kopia robocza)
@@ -406,11 +406,7 @@
Additionally you can pass it a search_mode argument ('natural',
'in_boolean_mode'
or 'with_query_expansion') to use an advanced search mode ('natural'
is the default).
- search_mode arg can be given for all full_text keys, or for a
specific key by naming
- the argument search_mode_KeyName, or even more specifically,
search_mode_Table.Key
- or search_mode_Table_Key

-
bgrain defined in meyhods...

TODO:
@@ -1707,7 +1703,7 @@
key_list = [] # the list of column keys
key_alias_dict = {}
for key in kw.keys():
- if key not in ('where_expression', 'sort-on', 'sort_on',
'sort-order', 'sort_order', 'limit'):
+ if key not in ('where_expression', 'sort-on', 'sort_on',
'sort-order', 'sort_order', 'limit', 'search_mode'):
value = kw[key]
current_query = None
new_query_dict = {}
@@ -1722,7 +1718,7 @@
new_query_dict[value_key]=value[value_key]
else:
new_query_dict[key]=value
- current_query = Query(**new_query_dict)
+ current_query = Query(search_mode=kw.get('search_mode'),
**new_query_dict)
query_dict[key]=current_query
key_list.extend(current_query.getSQLKeyList())
Sebastien Robin
2007-02-05 12:20:06 UTC
Permalink
Post by bartek
Hello
After recent refactoring, portal_catalog fails if given search_mode
parameter. I think we should patch it as follows, to make it work at
least in a basic way (with only general search_mode setting, not per
column). And maybe think of a better solution - or is a more
comprehensive refactoring still planned?
The search_mode parameter can be different for each key, thus this parameter
make sense only if it is defined for some keys, like this:

portal_catalog(title={"query":'aa',"search_mode":"natural"})

Seb.
Post by bartek
Bartek
Index: ZSQLCatalog/SQLCatalog.py
===================================================================
--- ZSQLCatalog/SQLCatalog.py (wersja 12218)
+++ ZSQLCatalog/SQLCatalog.py (kopia robocza)
@@ -406,11 +406,7 @@
Additionally you can pass it a search_mode argument ('natural',
'in_boolean_mode'
or 'with_query_expansion') to use an advanced search mode ('natural'
is the default).
- search_mode arg can be given for all full_text keys, or for a
specific key by naming
- the argument search_mode_KeyName, or even more specifically,
search_mode_Table.Key
- or search_mode_Table_Key
-
bgrain defined in meyhods...
@@ -1707,7 +1703,7 @@
key_list = [] # the list of column keys
key_alias_dict = {}
- if key not in ('where_expression', 'sort-on', 'sort_on',
+ if key not in ('where_expression', 'sort-on', 'sort_on',
value = kw[key]
current_query = None
new_query_dict = {}
@@ -1722,7 +1718,7 @@
new_query_dict[value_key]=value[value_key]
new_query_dict[key]=value
- current_query = Query(**new_query_dict)
+ current_query = Query(search_mode=kw.get('search_mode'),
**new_query_dict)
query_dict[key]=current_query
key_list.extend(current_query.getSQLKeyList())
_______________________________________________
Erp5-dev mailing list
Erp5-dev at erp5.org
http://erp5.org/mailman/listinfo/erp5-dev
--
Sebastien Robin, Nexedi Project Manager
Nexedi: Consulting and Development of Free / Open Source Software
http://www.nexedi.com
ERP5: Free / Open Source ERP Software for small and medium companies
http://www.erp5.org
bartek
2007-02-06 09:14:56 UTC
Permalink
Post by Sebastien Robin
Post by bartek
Hello
After recent refactoring, portal_catalog fails if given search_mode
parameter. I think we should patch it as follows, to make it work at
least in a basic way (with only general search_mode setting, not per
column). And maybe think of a better solution - or is a more
comprehensive refactoring still planned?
The search_mode parameter can be different for each key, thus this parameter
portal_catalog(title={"query":'aa',"search_mode":"natural"})
Thanks.

Bartek
Post by Sebastien Robin
Seb.
Post by bartek
Bartek
Index: ZSQLCatalog/SQLCatalog.py
===================================================================
--- ZSQLCatalog/SQLCatalog.py (wersja 12218)
+++ ZSQLCatalog/SQLCatalog.py (kopia robocza)
@@ -406,11 +406,7 @@
Additionally you can pass it a search_mode argument ('natural',
'in_boolean_mode'
or 'with_query_expansion') to use an advanced search mode ('natural'
is the default).
- search_mode arg can be given for all full_text keys, or for a
specific key by naming
- the argument search_mode_KeyName, or even more specifically,
search_mode_Table.Key
- or search_mode_Table_Key
-
bgrain defined in meyhods...
@@ -1707,7 +1703,7 @@
key_list = [] # the list of column keys
key_alias_dict = {}
- if key not in ('where_expression', 'sort-on', 'sort_on',
+ if key not in ('where_expression', 'sort-on', 'sort_on',
value = kw[key]
current_query = None
new_query_dict = {}
@@ -1722,7 +1718,7 @@
new_query_dict[value_key]=value[value_key]
new_query_dict[key]=value
- current_query = Query(**new_query_dict)
+ current_query = Query(search_mode=kw.get('search_mode'),
**new_query_dict)
query_dict[key]=current_query
key_list.extend(current_query.getSQLKeyList())
_______________________________________________
Erp5-dev mailing list
Erp5-dev at erp5.org
http://erp5.org/mailman/listinfo/erp5-dev
Loading...