Search for monsters by CR, alignment, climate/terrain, etc.
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Goonmill |
Confirmed
|
Medium
|
Cory Dodt |
Bug Description
The search index should be built so that monsters are searchable by parameters other than name and fulltext. For example, cr<=5 should be a valid search, as should alignment!=evil.
1. Implement indexing in such a way that this information is extracted, and the fields have an appropriate numeric type.
2. Explore the extent to which lucene's search syntax can implement this so users can type the queries in directly.
3. Add a dropdown box so that certain domains can be searched without the user needing to know syntax. For example, a dropdown with these choices:
Search in: "Good Monsters", "Evil Monsters", "Neutral and Unaligned Monsters", "Low-CR creatures (1-5)", "Medium-CR creatures ...",
Changed in goonmill: | |
assignee: | nobody → corydodt+launchpad-spams |
Changed in goonmill: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Two parts to this:
1. Adding the information to the index. Make the index contain information about alignment, cr, etc. Index alignment *atoms* as well as alignment (i.e. good AND lawful separately). In the case of CR, index that field numerically so numeric comparisons can be done on it. This is done in goonmill. search. indexMonster( )
2. Supporting the numeric operators. I'm not sure if Lucene already has these operators; if it does, they should Just Work because we don't mess with operators except to make searches fuzzy (~ added to everything). You may need to make the shotgun fuzzy operator not be so blanket. Look at goonmill. search. find()