Christos Malliaridis created SOLR-17383:
-------------------------------------------
Summary: Resolve overlapping arguments
Key: SOLR-17383
URL: https://issues.apache.org/jira/browse/SOLR-17383
Project: Solr
Issue Type: Improvement
Security Level: Public (Default Security Level. Issues are Public)
Reporter: Christos Malliaridis
With the changes from SOLR-16757 arguments were moved to java source code to
simplify and merge shell script logic. We noticed many overlappings in
arguments' short and long forms that cause confusion and possible unexpected
results.
Since commands are executed with "bin/solr", the user has a hard time learning
the short form of each command and the long form of the same "argument" may
vary too, because it is often context-specific.
Arguments that have conflicts are:
||Short Param||Long Param||Occurences||
|{{-c}}|{{--name}}|{{HealthCheckTool, ConfigTool, CreateTool, DeleteTool,
LinkConfigTool, PostTool}}|
|{{-c}}|{{--cloud}}|{{AssertTool, RunExampleTool, bin/solr}}|
|{{-c}}|{{--collection}}|{{PackageTool, bin/solr
}}|
|{{-c}}|{{--collections}}|? (unknown if there is a short form)|
| | | |
|{{-v}}|{{--verbose}}|{{SolrCLI, bin/solr}}|
|{{-v}}|{{{{--value}}}}|{{ConfigTool}}|
|{{-V (cap)}}|{{{{--verbose}}}}|bin/solr|
|{{-v}}|{{--version}}|SolrCLI|
| |{{ }}| |
|{{-s}}|{{{{--shards}}}}|CreateTool|
|{{-s}}|{{--started}}|AssertTool|
|{{-s}}|{{--script}}|RunExampleTool|
|{{-s}}|{{--solr-url}}|bin/solr|
|{{-s}}|{{--solr-home}}|bin/solr|
| | | |
|{{-url}}|{{--solr-url}}|{{SolrCLI}}|
|(no short form)|{{--solr-url}}|{{ApiTool, StatusTool}}|
|{{-url}}|{{--solr-collection-url}}|{{PostLogsTool, ExportTool}}|
|{{-url}}|{{--solr-update-url}}|{{PostTool}}|
| | |{{ }}|
|{{-d}}|{{--conf-dir}}|{{CreateTool, ConfigSetUploadTool, bin/solr}}|
|{{-d}}|{{--delete-config}}|{{DeleteTool}}|
|{{-d}}|{{--delay}}|{{PostTool}}|
|{{-d}}|{{--server-dir}}|{{RunExampleTool}}|
|{{-d}}|{{--dir}}|{{bin/solr}}|
|{{ }}|{{ }}|{{ }}|
|{{-r}}|{{--recurse}}|{{SolrCLI}}|
|{{-r}}|{{--root}}|{{AssertTool}}|
|{{-r}}|{{--recursive}}|{{PostTool}}|
|{{ }}|{{ }}|{{ }}|
|{{-m}}|{{--memory}}|{{RunExampleTool, bin/solr}}|
|{{-m}}|{{--message}}|{{AssertTool}}|
|{{ }}|{{ }}|{{ }}|
|{{-t}}|{{--type}}|{{PostTool}}|
|{{-t}}|{{--timeout}}|{{AssertTool}}|
|{{-t}}|{{--data-home}}|{{bin/solr}}|
|{{ }}|{{ }}|{{ }}|
|{{-e}}|{{--example}}|{{bin/solr, RunExampleTool}}|
|{{-e}}|{{--exitcode}}|{{AssertTool}}|
|{{ }}|{{ }}|{{ }}|
|{{-n}}|{{--no-prompt}}|{{RunExampleTool}}|
|{{-y}}|{{--no-prompt}}|{{PackageTool}}|
|{{-noprompt}}|{{--no-prompt}}|{{bin/solr}}|
|{{-n}}|{{--conf-name}}|{{ConfigSetUploadTool, CreateTool, LinkConfigTool,
bin/solr}}|
|{{ }}|{{ }}|{{ }}|
|{{-a}}|{{--addlopts}}|{{{{RunExampleTool (see also }}}}SOLR-16757)|
|{{-a}}|{{--additional-options}}|{{bin/solr}}|
|{{-a}}|{{-action}}|{{ConfigTool}}|
|{{ }}|{{ }}|{{ }}|
|{{-p}}|{{--port}}|{{RunExampleTool, bin/solr}}|
|{{-p}}|{{--property}}|{{ConfigTool}}|
|{{-p}}|{{--param}}|{{PackageTool}}|
|{{-p}}|{{--params}}|{{PostTool}}|
|{{ }}|{{ }}|{{ }}|
|{{-f}}|{{--force}}|{{RunExampleTool, bin/solr}}|
|{{-f}}|{{--force-delete-config}}|{{DeleteTool}}|
|{{-f}}|{{--format}}|{{PostTool}}|
|{{-f}}|{{--foreground}}|{{bin/solr}}|
|{{ }}|{{ }}|{{ }}|
|{{-h}}|{{--help}}|{{SolrCLI, bin/solr}}|
|{{-h}}|{{--host}}|{{RunExampleTool, bin/solr}}|
|{{ }}|{{ }}| |
|{{-u (not obvious)}}|{{--credentials}}|SolrCLI|
Noticable confusions for beginners may be:
*
{code:java}
bin/solr start -c -e techproducts # "creates" and starts a solr cloud instance
with example data, -c does not receive an argument
bin/solr create -c mycollection # "creates" a new collection in an existing
solr, -c requires a value{code}
*
{code:java}
bin/solr create -c mycollection # succeeds
bin/solr create --collection mycollection (fails?)
bin/solr create --name mycollection (succeeds){code}
*
{code:java}
bin/solr config -c ... --action set-user-property --property
update.autoCreateFields -v false # Does this set property to false or execute
command in verbose mode, or both{code}
We should consider for which arguments it is fine to have overlapping short
forms, which arguments can be unified and use same short and long-form to
improve learnability and which arguments should maybe not have a short form or
should use different wording to use different abbreviations.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]