Tasneem, > > The margins to the op2, i.e. m1 and m2, are added dynamically on > > both the sides, considering the value it contains. To keep this > > margin big is important for a certain reason discussed later. > > The NEAR operator is supposed to obtain the values near to the op2, > > thus the target membership degree(md) is initially set to 0.8. > > The algorithm compares the op1(column) values row by row to the > > elements of the set that NEAR defined, i.e. the values from md 1.0 > > to 0.8, adding matching tuples to the result set.
Are we talking about a mathematical calculation on the values, or an algorithm against the population of the result set? I'm presuming the latter or you could just use a function. If so, is NEAR an absolute range or based on something logarithmic like standard deviation? Beyond that, I would think that this mechanism would need some kind of extra heuristics to be at all performant, otherwise you're querying the entire table (or at least the entire index) every time you run a query. Have you given any thought to this? -- Josh Berkus PostgreSQL @ Sun San Francisco ---------------------------(end of broadcast)--------------------------- TIP 3: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq