2014-06-10 28 views
0

我有一个大的表,列名,电话号码和关系类型(我的朋友,家人,熟人等)。当我在狮身人面像中搜索一个名字时,我希望字段值“family”的结果的权重高于“熟人”。我如何手动设置某一行的权重,使其权重更高?狮身人面像 - 根据字段的值衡量结果

回答

0

许多选项...

A)您可以在“类型”存储在一个attribute - 属性存储在格兰指数(不像field S),可用于对结果进行排序。

你究竟做了什么,基本上是个人偏好问题。

例如:

sql_query = SELECT id,name,phone,type,(type=family) as boost from table 
sql_attr_bool = boost 

然后查询可以通过提升属性进行排序。 ... ORDER BY boost DESC, WEIGHT() DESC

您也可以将该类型存储为纯数字整数,并为每种类型设置一个值,然后按这种方式进行设置即可自然按该列进行排序。


或B)可以真正地离开类型作为field,并促进其结果,

例如扩展查询

john | (john @type family) 

极品约翰在OR两侧,所以总会有包含约翰的行。但是,因为它的双方,结果也匹配家庭,将匹配更多的关键字,并排名更高。

可以使用字段权重选项来选择影响结果的数量。

(最新版本的狮身人面像有MAYBE操作员来做这件事更容易)

+0

谢谢,有用的答案! – user3038754