• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Searching Question
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Searching Question


  • Subject: Re: Searching Question
  • From: Chuck Hill <email@hidden>
  • Date: Fri, 2 Oct 2009 19:57:09 -0700


On Oct 2, 2009, at 5:48 PM, Don Lindsay wrote:

Hello Chuck;

Thanks for your answer:

Querying millions of records on each login might present a performance problem regardless of how you do it. You may want to consider caching this or only doing it on demand. A regular WODisplayGroup may kill your app if there are lots of matches. In that case, ERXBatchingDisplayGroup from Wonder is what you want to be using.

True, there are other possibilities. I can create a materialized view in the database and represent it in my eomodel with a TOMany relationship I guess. That would put the processing onto the database side.

Most of the processing will be on the database side anyway. I am not sure if this query can be optimized with indexes. If not, a table scan will result. That will leave your database churning away and EOF locked up until it returns a result.



Using the ERXBatchingDisplayGroup, how does this differ from a standard WODisplayGroup? It does batches as well, although the ERXBatchingDisplayGroup may perform filtering in a different way?

It only fetches the PKs at first. The data is fetched in batches. WODisplayGroup fetches it all at once.



I create my qualifiers in code typically, although I have used the QueryMatch Dictionary and a component from time to time.

I think you have what you need, but i'd do some early testing if you are expecting millions of rows.


Chuck



On Oct 2, 2009, at 6:41 PM, Chuck Hill wrote:


On Oct 2, 2009, at 2:27 PM, Don Lindsay wrote:

Hello;

I know I have asked many questions this week. :) This is the first time I have attempted a search of this magnitude in WebObjects. I have users who are able to specify a parameter. For instance the gauge of a steel pipe (.357), I want them to be able to enter a default variance (.010) to apply to any query they run and be able to return the results ( would end up as between . 347 and .357.)

I can use QueryMin and QueryMax and java code, but that seems not very WOish (requires too much work and WO typically doesnt require alot of work).

The query would be run against thousands to millions of records and return matching items. Presenting the user with items that fall within their variance when they login to the application (and display them 10 at a time using a WORepetition).

Querying millions of records on each login might present a performance problem regardless of how you do it. You may want to consider caching this or only doing it on demand. A regular WODisplayGroup may kill your app if there are lots of matches. In that case, ERXBatchingDisplayGroup from Wonder is what you want to be using.



I know how to do this in SQL, but would prefer to use the WebObjects methodology to accomplish this goal. Any ideas or suggestions?


How are you setting up your display groups now? When I use them, I usually do it in code. You can just make a qualifier like:

EOQualifier guageInRange = new EOAndQualifier(
new NSArray(EOQualifier[]{
new EOKeyValueQualifier("guage", EOQualifier.QualifierOperatorGreaterThanOrEqualTo, target - variance),
new EOKeyValueQualifier("guage", EOQualifier.QualifierOperatorLessThanOrEqualTo, target | variance),
});


Or, if you are using Wonder's ERXQ, write the same thing with a lot less typing:

EOQualifier guageInRange = ERXQ.and(ERXQ.greaterThanOrEqualTo("guage", target - variance), lessThanOrEqualTo("guage", target | variance));


Chuck


-- Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects










-- Chuck Hill Senior Consultant / VP Development

Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems.
http://www.global-village.net/products/practical_webobjects








_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Searching Question (From: Don Lindsay <email@hidden>)
 >Re: Searching Question (From: Chuck Hill <email@hidden>)
 >Re: Searching Question (From: Don Lindsay <email@hidden>)

  • Prev by Date: Re: Searching Question
  • Next by Date: valueForBinding and indirectly referenced types
  • Previous by thread: Re: Searching Question
  • Next by thread: Re: Searching Question
  • Index(es):
    • Date
    • Thread