solr中的<uniqueKey>问题

在solr的schema.xml中有一个<uniqueKey>id</uniqueKey>元素。这个元素指定id的唯一性,即你建立索引时,如果add了两个具有相同id的索引,则最后加入的索引将覆盖前面的具有相同id的索引。
但是如果id是text类型,它的值是“中文”的话,solr这个自动覆盖功能并不起作用。不知道如何解决? :oops:

但是如果把text类型改为string类型,就能解决上述问题。呵呵,只知其然不知其所以然啊。

值得一提的还有field元素中multiValued这个属性,如下所示:<field name="content" type="text" indexed="true" stored="true" multiValued="true"/>。在这个例子里,这个属性表示content可以有多个值,即在api中,可以add两次,如下所示:
SolrInputDocument sid = new SolrInputDocument();
sid.addField("content", "今天我去上班,坐公交车");
sid.addField("content", "今天我去上班,骑自行车");
这样的话,当你使用新的id索引覆盖旧的id索引,并且你查询条件是使用content时,就要小心新索引的content里,是否有和旧索引的content里相同的值了。这样就不会有怎么没有删去旧索引的错觉了。 :)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,对于在SSM项目整合Solr并配置用户名和密码的问题,可以按照以下步骤进行操作: 1. 首先,需要在Solr的配置文件配置安全认证和授权信息。具体可以参考Solr的官方文档,例如在 solrconfig.xml 添加如下配置: ```xml <security> <user> <username>solr</username> <password>password</password> <roles> <role>admin</role> </roles> </user> </security> ``` 其,`<username>` 和 `<password>` 分别为Solr的用户名和密码,`<roles>` 可以配置该用户所拥有的角色,例如上面的配置该用户拥有 `admin` 角色。 2. 在SSM项目,需要引入 SolrJ 的相关依赖,例如: ```xml <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-solrj</artifactId> <version>8.9.0</version> </dependency> ``` 3. 在代码,使用 SolrJ 进行连接 Solr 服务器,其需要指定 Solr 的用户名和密码,例如: ```java String solrUrl = "http://localhost:8983/solr/"; String username = "solr"; String password = "password"; SolrClient solrClient = new HttpSolrClient.Builder(solrUrl) .withBasicAuthCredentials(username, password) .build(); ``` 在以上代码,`solrUrl` 为 Solr 服务器的地址,`username` 和 `password` 分别为配置的 Solr 用户名和密码。使用 `HttpSolrClient.Builder` 进行创建 `SolrClient` 实例,通过 `withBasicAuthCredentials` 方法设置用户名和密码即可实现访问 Solr 服务器。 希望这些能够对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值