首页 > 解决方案 > 在单个文档中具有多个实体的 Solr 搜索查询

问题描述

我有一个如下所示的 solr 数据配置(使用 mysql db)

<document>
            <entity name="users"   
                    query="SELECT user_id, user_id as pk_field, user_name FROM users">                        
            </entity>                

            <entity name="group"   
                    query="SELECT group_id, group_id as pk_field, group_name FROM  groups">
            </entity>        
</document>

现在,我想根据实体名称在 solr 中搜索它。一般来说,如果我从两个文档中搜索它。我需要在搜索时指定实体名称。有人可以帮忙吗?

标签: solrlucenesolrj

解决方案


将实体类型添加为查询中的值之一:

SELECT 'group' AS entity_type, group_id, group_id as pk_field, group_name ...

SELECT 'user' AS entity_type, user_id, user_id as pk_field, user_name

然后,您可以附加 afq=entity_type:user以仅搜索您的用户和entity_type:group仅搜索您的组。


推荐阅读