In a website I am working on, there is an advanced search form with several fields, some of them dynamic that show up / hide depending on what is being selected on the search form.

Data expected to be big in the database and records are spread over several tables in a very normalized fashion.

Is there a recommendation on using a 3rd part search engine, sql server full text search, lucene.net, etc ... other than using SELECT / JOIN queries?

Thank you
['https://Stackoverflow.com/questions/9699529', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/248665/']
The purpose of `final` but non-`static` variables is to have an object-wide constant. It should be initialized in the constructor:

```
class Passenger {
    final int b;

    Passenger(int b) {
        this.b = b;
    }
}

```

If you are always assigning a constant literal value (`0`) to the `final` variable, it doesn't make much sense. Using `static` is preferred so that you are only having a single copy of `b`:

```
static final int b = 0;

```

BTW I don't think having default access modifier was your intention.
In java, the `static` attribute basically means: **associated with the type itself, rather than an instance of the type**.

In other words you can reference a static variable without creating instances of that type... Whereas in the case of just using `final` you'd need to instantiate the class.

So, yes, to answer your question, I'd say that you're right. :)