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
-~----------~----~----~----~------~----~------~--~---

Reply via email to