5

I've looked at multiple modules (Faceted Search, Custom Search, an abandoned project named search_all) but I haven't been able to find anything that works with 7.x.

What I'm looking for is just a way to let users search on a search term and then get a page of results from all content, including other users in the system.

Any ideas?

5 Answers 5

1
+50

There are similar question to yours here:

How do I create a View of different entity types?

How to create a union of two views?

Other than that there are several answers possible:

Get the data searchable

Attach nodes to the users. Take a look at drupal.org/project/profile2 or http://drupal.org/project/content_profile (depending on your drupal version).

Extend search

Other than that the mentioned http://drupal.org/project/search_api seems like a good place to start.

Note

You probably know this but in case you (or sb finding that question) doesn't. To search views add a filter called "Search: Search Terms (optional )" and expose it.

5

Haven't tried it, but I believe you could use Apache Solr with the http://drupal.org/project/search_api, http://drupal.org/project/search_api_solr, and http://drupal.org/project/search_api_multi

Create two indexes, one for nodes and one for users. Then create a view that uses both indexes.

1
  • I believe solr is an easy way to go about it, but why two indexes? Wouldn't a single index actually be a better way to get cross-entity search? Separate indexes will give separate search relevance, for example.
    – Letharion
    Dec 7, 2012 at 16:53
2

This would be an interesting project for sure. If I were to write a module to do this, I would copy the parts before the execute call in node_search_execute and user_search_execute and create UNION query out of them. Modify of course the fields selected so they are uniform, I recommend entity_id and adding an addExpression('entity_type', 'node') so that rows can be loaded by entity_load. That's... about it. It'll be slow as hell.

Alternatively you can take the UNION query created here and feed it to SphinxSearch and search that.

1

There is a module called search_combine that claims to give one set of search results for all content types and users.

However I've installed it and enabled it and permissions it requires and it doesn't seem to make any difference: the results remain separated for content and user.

Just bringing it to your attention in case you'd like to have a go using it (and if you get it working let us all know how you did :) )

0

thanks for the advice:

the module search_combine is OK for combining the search results of user and content this is the config way if not found:

  1. install activate the module:

    drush en search_combine -y
    
  2. permission: tick all

  3. configuration:Administration » Configuration » Search and metadata » search settings:
  4. ACTIVE SEARCH MODULES:on select:"Search combine" and untick node and user option
  5. on Default search module: select "Search combine" option

  6.     drush cc all
    

and everything is alright

1
  • search_combine doesn't get the user in the search result. Followed the steps mentioned above but still it doesn't show the user results but only content.what else need to be done?
    – Ram
    Mar 18, 2016 at 6:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.