0
我有一个大的表,列名,电话号码和关系类型(我的朋友,家人,熟人等)。当我在狮身人面像中搜索一个名字时,我希望字段值“family”的结果的权重高于“熟人”。我如何手动设置某一行的权重,使其权重更高?狮身人面像 - 根据字段的值衡量结果
我有一个大的表,列名,电话号码和关系类型(我的朋友,家人,熟人等)。当我在狮身人面像中搜索一个名字时,我希望字段值“family”的结果的权重高于“熟人”。我如何手动设置某一行的权重,使其权重更高?狮身人面像 - 根据字段的值衡量结果
许多选项...
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操作员来做这件事更容易)
谢谢,有用的答案! – user3038754