Tool to Support Advanced Search - plugins

I am not quite sure how to ask this and if my title is correct. Please edit this question if seen fit.
Redmine has a feature where user can filter certain user defined parameters when performing search:
I would like to know if there is a term for this kind of feature so I can research more regarding this. I'd also like to know if there are existing technologies (i.e. frameworks/cms/plugin) that support this kind of feature. I want to reuse exising technologies if possible and at the same time have this kind of search feature.
My requirements are similar to that of Redmine. That is, instead of Issues, I search Users and the attributes related to that user. The requirements are as follows:
I can add a user, specify the attributes related to this user.
Perform a search on the user and specify the parameters where to the search the user.

My guess is that there is no real term for this, beyond "advanced search"; unfortunately these functions range from simple to mind-bogglingly advanced.

Related

Additional Info For Some Users

I am looking to add some additional content to users that should be required for users of type X
example: Sales Associate's
require: Profile Picture
just breaking into Orchard, i have done some looking for something like this just no luck so far.
THANK YOU IN ADVANCE
Every user in Orchard is of type User - there is no distinction. So you may approach the problem twofold:
Create your own content types to describe various users. By default there is one type in Orchard that describes a user - "User".
In order to make it work you'd need to write your own version of Orchard.Users module that would take that information into account. It may be quite a bit of work though as you'd need to override any piece of functionality that's there that uses the hardcoded "User" type. Best and cleanest solution, but also the most complex.
Use a single content part attached to "User" type, similar to how the profile modules (eg. Contrib.Profile) work. The distinction between different user types can be done on the driver level. You're free to return different content for a given part, based on some custom logic (eg. the stored value describing "user type"). Lot less flexibility than the first approach (all other parts attached to a user will be shared by everyone), but also lot less coding.

How to implement Location Automation Field

I am wondering how to go about implementing Location Automation Field, as suggested in this article: http://uxmovement.com/forms/new-form-techniques-proven-to-save-time-and-money/
Are there libraries or services that can help me figure out City/State given the zipcode? I know Google has the Geocoder/decoder or Google Places search that could potentially be useful but their Terms of Use mandate that you must use their services in conjunction with displaying the results on their map, which is a weird thing to do when the user is filling out billing info...
Cheers to you for observing TOS. That's good business.
You could use SmartyStreets. LiveAddress API supports city/state and ZIP code lookups. It now has auto-complete as you type an address, too.
I work at SmartyStreets. In fact, we developed the jQuery plugin which does address validation and auto-complete for you. It even supports freeform address fields.
Related question by yours truly, over on UX stack exchange: https://ux.stackexchange.com/questions/22196/combining-all-the-address-fields-into-one

From the two approaches I list, which one is better for CMS page management and why?

Here are the two scenarios:
First one: You have a CMS you log into go to the page manager, select a template, then add a page into the system, edit the page, save it done.
Second one: You sign in, then go to the URL you want to exist but doesn't exist yet but still shows up as a template to enter in stuff. For example, "/articles/article" and since the URLs were mapped to be dynamic, the article template shows up and has the placeholders to edit right there. Different types of pages or templates would be mapped to different URL patterns such as "/product/[product-number]" etc etc.
Is there any security concerns for doing the latter since I like the second one better in terms of programming as there is no management of pages, just authentication then navigating to the desired page. The first one is more structured and is good listing them out or individiual permission settings.
Please advise.
Beyond the authentication considerations, I think both approaches are fine. I see them as ultimately accomplishing the same thing through different user experiences. To answer the question, I would paper prototype each, then pull users into a room and perform a quick / informal usability study, giving them tasks such as "create a page with ..." etc. Evaluate which model performed better. You really should answer this question by including the users that will use the system.

How to implement a search system in a database for an iphone application

This is pretty wide question, but I'm hoping to get a push in the right direction (technologies and methodology).
Ok, I have an iphone app (which I am developing) that works with a web service (c#) through http requests. The web service connects to the underlying database, extracts the necessary data depending on the request and feeds it back to the application.
Now, I need to implement a search system in the app. The user searches for some words, and I need to provide the most relevant results. The search must be performed on different tables in the database. Each table can be searched in a number of columns. For example, when searching through the people table I need to search in the first name, lastname, company, and other fields. Other tables have other important columns.
I have so many questions that I don't even know where to start.
How do I make my sql queries to make the search, but still be fast enough. Do I need to make some extra tables with indexed content somehow?
How should I add relevance factor to the results so I can ultimately filter only the most relevant results? For example, if an user searches for Smith, maybe there is a person named Smith or even a Company. They should be displayed before any other content that can have smith in the description.
I know the question is a little vague/wide but I can explain more if somebody desires.
Thank you
This kind of depends on which language/rdbms you are using on your server. You might checkout various DB search solutions like Sphinx which will do all of that indexing for you and provide a simple Search API. Sphinx for example allows you to prioritize columns, define character mappings (ß->s, ä->a) etc.
In the end I have decided to use Lucene. It's a wonderful piece of technology and even if I had some doubts in the beginning, after reading 3/4 of the book called "Lucene in Action" it was clear to me that it had everything I needed (and much more).
I know it's not a fully-functional searching system (with all the elements needed), but merely a library handling the core of a search system. It will need some work to integrate it with my application/webservice/database. I will let you know how it goes :)
Thanks for your input!

avoiding tag misspellings an erroneous tag data

I'm working on implementing a tagging system in my application. I've been reading some of the other questions on SO about database schemas used to implement tags and they've been very helpful, but I havent' found any that talk about how to combat tag spelling errors and things. So if two people enter the same tag but they are spelled incorrectly, it becomes a problem when others go searching for tags, or if you want to do any reporting off of tag information. What kinds of things to others use to help avoid this? or do you just have to put up with it?
Having moderator-level community members can assist in this event. The re-tagging of things should be able to be flagged by a member, changed by a moderator. The same goes for question alteration, title changing (for clarity). Community driven databases are good for this, given effective scoring system to prevent malicious editors.