java - Solr文档中动态键值对的存储和搜索

标签 java solr indexing full-text-search

我需要存储和索引特定 Solr 文档附带的键值对。例如,可能有可变数量的标签(标签)附加到 solr 文档,每个标签名称都有一个整数作为它的值。

   <doc>
     <id>1001</id>
     #dymanic tags attached
     php=>10
     web=>2
     programming=>12
     mysql=>10

    </doc>  

因此,当我搜索“php”时,该文档应该显示在搜索结果中,并且我应该能够读取该特定文档的值(在示例中,其值为 10)。如何为此创建架构以及如何存储它。另外,如何使用 REST api 搜索它?

最佳答案

对于动态字段,您需要将它们添加为获取计数的键以及使其可搜索的值。

相反,你可以尝试 -

将它们添加为语言和计数的多值字段。

语言字段将保存语言的值,也可以用作可搜索字段。

<field name="language" type="text" indexed="true" stored="true" multiValued="true"/>

将语言计数添加为其他多值字段,并保持顺序。

<field name="language_count" type="int" indexed="false" stored="true" multiValued="true"/>

在响应中,您将有两个数组用于语言和 language_counts,您可以按位置映射客户端的语言计数。

关于java - Solr文档中动态键值对的存储和搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8132764/

相关文章:

sql - PostgreSQL 不使用部分索引

Solr 未初始化

java - 自签名的 tomcat 和 mysql/mariadb

java - DateFormat 格式方法不显示特定时区的解析日期

java - 带有 InitialDirContext 的 Tomcat 7 中的 ActiveMQ 5.10 客户端

search - 如何让 Solr suggester 也处理拼写错误?

solr - 如何获取SOLR中每个文档的总字数?

indexing - 如何仅使用 boto 2.25.0 通过全局二级索引查询 DynamoDB2 表?

PHP array_Shift() 突然停止

java - 在运行时检索 Log4J Appenders 列表