schema与查询11点注意事项

简介: 假期梳理了之前在新浪博客的文档,将一些有用的内容搬到这里。本文介绍solr schema与查询注意事项。

schema.xml 中定义lucene索引字段名称,schema中不应该出现歧义的域名称。

以下列举的是需要避免的:

  1. fq: 走http协议,fqfilterquery的保留字,如果正常field中也有,可能解析出问题
  2. q  类似fq
  3. fl: 类似fq
  4. _val_: function排序的一种,同样有这个域名,在queryparse时候可能出现
  5. docIdlucene内部id,如果schema定义了,那么fl 中返回的域名可能就混淆
  6. scorelucene得分字段,如果schema也定义了,并且当fl中返回score的时候,也就混淆了dismax: dismax 解析func: 函数查询解析
  7. 区间查询

fielda[11 TO 22]  闭区间

fielda:{ 11 TO 22} 开区间

fielda:11 AND fielda:{ 11 To 22}  半开半闭区间一定是配对出现的
8. AND OR  用在
solrj中; + -   用在 url

  1. “” 表示一组,整体的意思,查询的时候分词效果不一样,需避免错误使用。() 括号表示一个clause,好比四则运算里面的括号


  1. 频率位置与tfitf与索引体积  

    如果tfitf需要屏蔽,也就是文本的长度、位置、频率不影响得分,此时定制siliarity,复写其中的得分因子为1.0f,对应schema中域的类型,去掉频率位置信息。    如果需要tfitf,就不可以全部屏蔽,需要部分开启,看业务决定  


  1. 文本排序与业务质量的平滑。命中fieldA 比命中fieldB 权重大,一方面直接query

boost。如果命中fieldA 的时候,由另外值来排序,命中fieldA的时候tfitf不影响得分,存在另外一个问题。eg 输入淘宝,命中淘宝杭州、 淘宝商城、 淘宝taobao 、淘宝淘宝 、淘宝,那么另外值如果不是淘宝得分最高,而是淘宝taobao 最高,某种角度看,不是特别友好。如果是淘宝淘宝的命中,似乎也不好。这样容易滋生作弊。  

目录
相关文章
|
1月前
|
SQL Oracle 关系型数据库
SQL如何添加字段记录:详细步骤与技巧
在数据库管理中,经常需要向已有的表中添加新的字段(列)或向表中插入新的记录
|
2月前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
32 4
|
SQL Oracle 关系型数据库
SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决
SQL Server2019数据库查询所有数据库名、表名、表结构、表字段、主键方法演示,执行sql提示对象名‘user_tab_columns‘、 ‘user_cons_columns‘ 无效问题解决
453 0
|
SQL
查询表字段信息sql
查询表字段信息sql
99 0
|
SQL 分布式计算 关系型数据库
SQL 语法--表数据导入方式 | 学习笔记
快速学习 SQL语法--表数据导入方式
160 0
SQL 语法--表数据导入方式 | 学习笔记
|
关系型数据库 MySQL 数据库
在MySQL数据库中查询数据通用的 SELECT 语法
在MySQL数据库中查询数据通用的 SELECT 语法
162 0
|
SQL 存储 数据库
SQL 基础(二)数据表的创建、约束、修改、查看、删除
SQL 基础(二)数据表的创建、约束、修改、查看、删除
269 0
SQL 基础(二)数据表的创建、约束、修改、查看、删除
|
SQL 关系型数据库 MySQL
MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
407 0
MySQL 数据库利用alter语句修改表字段属性实例演示,如何拓展表字段长度,sql语句修改表字段名称和类型
|
SQL 关系型数据库 MySQL
MySQL 数据库sql语句用关键字作为where条件进行筛选实例演示,mysql建表、查询字段为关键字解决方法
MySQL 数据库sql语句用关键字作为where条件进行筛选实例演示,mysql建表、查询字段为关键字解决方法
235 0
MySQL 数据库sql语句用关键字作为where条件进行筛选实例演示,mysql建表、查询字段为关键字解决方法
|
SQL 关系型数据库 数据库
PostgreSQL sharding : citus 系列4 - DDL 操作规范 (新增DB,TABLE,SCHEMA,UDF,OP,用户等)
标签 PostgreSQL , citus , 新增对象 , 新增数据库 , 新增用户 背景 citus是PG的一个插件,插件主要针对普通SQL(非UTILITY)加HOOK进行了一些ROUTE处理,同时使用UDF对表进行新建分区的操作。
1855 0