search - 使用 DIH (DataImportHandler) 的动态列名

标签 search solr lucene

有没有办法使用返回的值创建动态列(作为键/值)名称
从查询抛出 DIH (DataImportHandler)?

例如:

<entity name="foo" dataSource="my_database" query="select key,value from foo where id=${item.id}">
   <field column="${foo.key}" value="${foo.value}" name="${foo.key}_s"/>
</entity>

??

最佳答案

使用 ScriptTransformer ——

例子 -

数据配置 - 添加自定义字段 -

<script><![CDATA[
        function addfield(row){
            var fieldName = row.get('key') + "_s"
            row.put(fieldName, row.get('value'));
            return row;
        }
]]></script>

实体映射 -
<entity name="foo" dataSource="my_database" transformer="script:addfield" query="select key,value from foo where id=${item.id}">
    ......
</entity>

关于search - 使用 DIH (DataImportHandler) 的动态列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7917317/

相关文章:

java - 使用空格分析器搜索关键字

Mysql全文搜索查询执行

php - 如何使用仅返回具有特定字段值的行的 MATCH AGAINST 方法搜索 MySQL 数据库?

algorithm - 硬编码深度优先搜索结果(或优化?)

algorithm - 查找是否有可能到达二叉树中的某个元素

javascript - solr 响应网络浏览器 URL 但不是来自 javascript 代码?

java - Alfresco solr 跟踪失败

solr - Solr 4.2-什么是_version_field?

lucene - 如何使用 Amazon S3 实现 LuceneNet

java - 使用lucene自动完成如何放弃某些搜索术语