Thanks in advance for any help!
Here is my define:
class Expense < AR::BASE
define_index do
indexes amount, title, check_number, notes, business_id
indexes [client.name, client.company_name], :as=>:client_name
indexes [payee.name, payee.company_name], :as=>:payee_name
indexes [employee.name,
employee.company_name], :as=>:employee_name
indexes [contractor.name,
contractor.company_name], :as=>:contractor_name
indexes expense_category.name, :as=>:expense_category_name
where "repeated_template = false"
set_property :delta => true
set_property :enable_star => true
set_property :morphology => 'none'
end
end
When I search with the business_id condition it works for some ids,
but not others.
If I search
Expense.search "*", :conditions=>{:business_id=>1}
[Tue Feb 10 20:51:24.724 2009] 0.006 sec [ext/2/rel 1314 (0,20)] [*] *
@business_id 1
everything works, but if I search
Expense.search "*", :conditions=>{:business_id=>4988}
[Tue Feb 10 21:56:15.338 2009] 0.001 sec [ext/2/rel 0 (0,20)] [*] *
@business_id 4988
I get [].
If I search (no condition)
e = Expense.search "SLICEHOST SAINT LOUIS MO"
[Tue Feb 10 21:51:15.200 2009] 0.002 sec [all/2/rel 4 (0,20)] [*]
SLICEHOST SAINT LOUIS MO
I get [].size = 4 with these mappings:
>> e.size
=> 4
>> e.map &:business_id
=> [5663, 4988, 3522, 4988]
>> e.map &:id
=> [118247, 107972, 118296, 119951]
>> Expense.search "*", :conditions=>{:business_id=>'4988'}
=> []
>> e.map &:delta
=> [false, false, false, false]
>> e.map &:repeated_template
=> [false, false, false, false]
You can see there are two with the 4988 business_id.
Here is conf for this table:
source expense_core_0
{
type = mysql
sql_host = localhost
sql_user = lesser
sql_pass = z3r0*funds
sql_db = lessaccounting_production
sql_port = 3306
sql_query_pre = UPDATE `expenses` SET `delta` = 0
sql_query_pre = SET NAMES utf8
sql_query = SELECT `expenses`.`id` * 8 + 4 AS `id` , CAST
(`expenses`.`amount` AS CHAR) AS `amount`, CAST(`expenses`.`title` AS
CHAR) AS `title`, CAST(`expenses`.`check_number` AS CHAR) AS
`check_number`, CAST(`expenses`.`notes` AS CHAR) AS `notes`, CAST
(`expenses`.`business_id` AS CHAR) AS `business_id`, CAST(CONCAT_WS('
', `contacts`.`name`, `contacts`.`company_name`) AS CHAR) AS
`client_name`, CAST(CONCAT_WS(' ', `payees_expenses`.`name`,
`payees_expenses`.`company_name`) AS CHAR) AS `payee_name`, CAST
(CONCAT_WS(' ', `employees_expenses`.`name`,
`employees_expenses`.`company_name`) AS CHAR) AS `employee_name`, CAST
(CONCAT_WS(' ', `contractors_expenses`.`name`,
`contractors_expenses`.`company_name`) AS CHAR) AS `contractor_name`,
CAST(`expense_categories`.`name` AS CHAR) AS `expense_category_name`,
`expenses`.`id` AS `sphinx_internal_id`, 3800544314 AS `class_crc`,
'3800544314' AS `subclass_crcs`, 0 AS `sphinx_deleted` FROM
expenses LEFT OUTER JOIN `contacts` ON `contacts`.id =
`expenses`.client_id LEFT OUTER JOIN `contacts` payees_expenses ON
`payees_expenses`.id = `expenses`.payee_id LEFT OUTER JOIN
`contacts` employees_expenses ON `employees_expenses`.id =
`expenses`.employee_id LEFT OUTER JOIN `contacts`
contractors_expenses ON `contractors_expenses`.id =
`expenses`.contractor_id LEFT OUTER JOIN `expense_categories` ON
`expense_categories`.id = `expenses`.expense_category_id WHERE
`expenses`.`id` >= $start AND `expenses`.`id` <= $end AND
`expenses`.`delta` = 0 AND repeated_template = false GROUP BY
`expenses`.`id`, `expenses`.`amount`, `expenses`.`title`,
`expenses`.`check_number`, `expenses`.`notes`,
`expenses`.`business_id`, `contacts`.`name`,
`contacts`.`company_name`, `payees_expenses`.`name`,
`payees_expenses`.`company_name`, `employees_expenses`.`name`,
`employees_expenses`.`company_name`, `contractors_expenses`.`name`,
`contractors_expenses`.`company_name`, `expense_categories`.`name`,
`expenses`.`id`
sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1)
FROM `expenses` WHERE `expenses`.`delta` = 0
sql_attr_uint = sphinx_internal_id
sql_attr_uint = class_crc
sql_attr_uint = sphinx_deleted
sql_attr_multi = uint subclass_crcs from field
sql_query_info = SELECT * FROM `expenses` WHERE `id` = (($id - 4) /
8)
}
index expense_core
{
source = expense_core_0
path = /var/rails/lessaccounting/releases/20090210045237/db/sphinx/
production/expense_core
morphology = none
charset_type = utf-8
enable_star = true
}
source expense_delta_0 : expense_core_0
{
type = mysql
sql_host = localhost
sql_user = lesser
sql_pass = z3r0*funds
sql_db = lessaccounting_production
sql_port = 3306
sql_query_pre =
sql_query_pre = SET NAMES utf8
sql_query = SELECT `expenses`.`id` * 8 + 4 AS `id` , CAST
(`expenses`.`amount` AS CHAR) AS `amount`, CAST(`expenses`.`title` AS
CHAR) AS `title`, CAST(`expenses`.`check_number` AS CHAR) AS
`check_number`, CAST(`expenses`.`notes` AS CHAR) AS `notes`, CAST
(`expenses`.`business_id` AS CHAR) AS `business_id`, CAST(CONCAT_WS('
', `contacts`.`name`, `contacts`.`company_name`) AS CHAR) AS
`client_name`, CAST(CONCAT_WS(' ', `payees_expenses`.`name`,
`payees_expenses`.`company_name`) AS CHAR) AS `payee_name`, CAST
(CONCAT_WS(' ', `employees_expenses`.`name`,
`employees_expenses`.`company_name`) AS CHAR) AS `employee_name`, CAST
(CONCAT_WS(' ', `contractors_expenses`.`name`,
`contractors_expenses`.`company_name`) AS CHAR) AS `contractor_name`,
CAST(`expense_categories`.`name` AS CHAR) AS `expense_category_name`,
`expenses`.`id` AS `sphinx_internal_id`, 3800544314 AS `class_crc`,
'3800544314' AS `subclass_crcs`, 0 AS `sphinx_deleted` FROM
expenses LEFT OUTER JOIN `contacts` ON `contacts`.id =
`expenses`.client_id LEFT OUTER JOIN `contacts` payees_expenses ON
`payees_expenses`.id = `expenses`.payee_id LEFT OUTER JOIN
`contacts` employees_expenses ON `employees_expenses`.id =
`expenses`.employee_id LEFT OUTER JOIN `contacts`
contractors_expenses ON `contractors_expenses`.id =
`expenses`.contractor_id LEFT OUTER JOIN `expense_categories` ON
`expense_categories`.id = `expenses`.expense_category_id WHERE
`expenses`.`id` >= $start AND `expenses`.`id` <= $end AND
`expenses`.`delta` = 1 AND repeated_template = false GROUP BY
`expenses`.`id`, `expenses`.`amount`, `expenses`.`title`,
`expenses`.`check_number`, `expenses`.`notes`,
`expenses`.`business_id`, `contacts`.`name`,
`contacts`.`company_name`, `payees_expenses`.`name`,
`payees_expenses`.`company_name`, `employees_expenses`.`name`,
`employees_expenses`.`company_name`, `contractors_expenses`.`name`,
`contractors_expenses`.`company_name`, `expense_categories`.`name`,
`expenses`.`id`
sql_query_range = SELECT IFNULL(MIN(`id`), 1), IFNULL(MAX(`id`), 1)
FROM `expenses` WHERE `expenses`.`delta` = 1
sql_attr_uint = sphinx_internal_id
sql_attr_uint = class_crc
sql_attr_uint = sphinx_deleted
sql_attr_multi = uint subclass_crcs from field
sql_query_info = SELECT * FROM `expenses` WHERE `id` = (($id - 4) /
8)
}
index expense_delta : expense_core
{
source = expense_delta_0
path = /var/rails/lessaccounting/releases/20090210045237/db/sphinx/
production/expense_delta
}
index expense
{
type = distributed
local = expense_delta
local = expense_core
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Thinking Sphinx" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/thinking-sphinx?hl=en
-~----------~----~----~----~------~----~------~--~---