Similar to storage.default-namespace sometimes during development you'll want
to handle multiple indexes alongside one another. Rather than hardcoding the
/phabricator/ index make this exposed in new search.elastic.index setting,
defaulting to the existing "phabricator"
Details
- Reviewers
epriestley - Group Reviewers
Blessed Reviewers - Commits
- Restricted Diffusion Commit
rP66a3abe058a7: Make it possible to configure Elasticsearch index name - Required Signatures
L28 Phacility Individual Contributor License Agreement
Existing installations should be unaffected by this change. Changing the new
setting will result in new indexes being created when someone runs
./bin/search index again
Diff Detail
- Repository
- rP Phabricator
- Branch
- master
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 1626 Build 1627: [Placeholder Plan] Wait for 30 Seconds
Event Timeline
I went ahead and signed the individual CLA since I retain the copyright on all my work.
Two really minor inlines. I think search.elastic.namespace might also be clearer than serach.elastic.index. That said, I'm not very familiar with ElasticSearch. Is "index" likely to be clearer to users who are?
conf/default.conf.php | ||
---|---|---|
764–766 ↗ | (On Diff #23517) | This file is on its way out -- there's a brief message in the header, but basically just don't add anything here. We can wipe the file at some point but need to make sure that all the settings in this file are exactly the same as the default settings in the code so that wiping it won't change installs. |
src/applications/search/engine/PhabricatorSearchEngineElastic.php | ||
239–242 | This should probably be: $uri = new PhutilURI($this->uri); $uri->setPath($this->index); $uri->appendPath($path); That should get all the various missing-trailing-slash cases correct, I think. |
Handle uri formation better, don't add to deprecated config, call the
setting 'namespace' so it's more clear to Phabricator.