Head/tail analysis is:
  • Also known as the Underperforming Query Rewriting feature
  • Uses signals data to identify underperforming queries
  • Suggests improved queries that could produce better conversion rates
When an incoming query contains a matching underperforming query, the original query is replaced by an improved query. These improvements can be: Query improvements are applied in the Text Tagger stage of the query pipeline. The Head/Tail Analysis job automatically creates query improvements based on your AI-generated data. When you navigate to Relevance > Rules > Rewrite and select the Head/Tail tab, the application displays the Underperforming Query Rewriting screen.
Job-generated query improvements are always assigned an initial status of “Pending”, never “Auto”. Query improvements must be explicitly approved and published in order to be copied to the COLLECTION_NAME_query_rewrite collection.
Underperforming Queries screen
LucidAcademyLucidworks offers free training to help you get started.The Course for Query Analytics focuses on how Fusion provides query analytics to detect and improve underperforming queries:
Query AnalyticsPlay Button
Visit the LucidAcademy to see the full training catalog.

Reviewing auto-generated query improvements

Query improvements that are automatically generated by the Head/Tail Analysis job are assigned the following status value:
  • Auto All results will be automatically deployed to the _query_rewrite collection.
    No action is required on these results, but you can edit them if you wish.

Adding new query improvements

You can manually add query improvements in addition to any generated by the Head/Tail Analysis job.

How to add a query improvement

  1. Navigate to Relevance > Rules > Rewrite.
  2. Select the Head/Tail tab. The application displays the Underperforming Query Rewriting screen.
  3. At the bottom of the rules list, click the icon.
    A new query improvement appears at the top of the list:
    Add a query improvement
  4. Enter the underperforming query.
  5. Enter one or more query improvements.
It is not necessary to set a confidence value.
  1. Select the query improvement’s status, depending on whether you want to deploy it the next time you publish your changes (“Approved”) or save it for further review (“Pending”).
  2. Click the check mark to save the new query improvement.

Publishing your changes

How to publish updated query improvements

  1. In the Underperforming Query Rewriting screen, click the PUBLISH button.
    Managed Fusion prompts you to confirm that you want to publish your changes.
  2. Click PUBLISH.
You can un-publish a query rewrite by changing its status to “denied”, then clicking PUBLISH.
For more information about how to use underperforming query rewrites in the Rules Editor, see Use query rewrites in the Rules Editor.
This article describes how to use the Rewrites screen in the Rules Editor.

Query rewrite rule types

  • Head/Tail. Replace underperforming queries with queries that produce higher click-through rates. Query improvements always require review before they are published. Schedule the Head/Tail Analysis job to get AI-generated query improvements based on your signals collection.

    Manually created Head/Tail rewrites must provide an “Improved Query” in a format appropriate to the type of request the rewrite will be applied to. For Legacy requests, this means a valid Solr query fit for use as the q parameter. For DSL requests this means a JSON string representing the main DSL query.

    For more information, see:
  • Misspelling. Managed Fusion replaces misspelled query terms with their spelling corrections for better search results. Schedule the Token and Phrase Spell Correction job to get AI-generated spelling corrections based on your signals collection. See Misspelling Detection.
  • Phrase. Known phrases are boosted when they appear in new queries. Schedule the Phrase Extraction job to get AI-generated phrases based on your signals collection. For more information, see Phrase Detection.
  • Synonym. Synonyms are used to expand queries so that they include all known synonyms of the query terms. To retrieve AI-generated synonyms based on your signals collection, schedule the Synonym Detection job.
  • Remove Words - Remove particular phrases from queries. Unlike other rewrites, these should be entered manually and are not generated by a job. See Remove Words.

Facets

Facet menu

Facet rulesTo facet the rules list by Status or Published, click one of the facet items within the facet categories.To facet the rules by Confidence, click and drag either slider to set the range of confidence you would like to see:Confidence facet
Faceting rules by confidence is not available for Head/Tail rewrites.
Enter a term in the search bar to quickly facet your query rewrite rules.

Rules

Begin by selecting a query rewrite rule types to create.Query rewrite rule types

Create a rule

  1. Click +Add.
  2. In the new table row, complete the required fields, and additional fields as needed.
  3. Click the checkmark to save, or close to cancel the changes.

Edit a rule

  1. Hold the pointer over the rule to edit.
  2. Click the pencil icon.
  3. Enter desired changes and click the checkmark to save, or close to cancel the changes.

Approve/deny rules

  1. Hold the pointer over a rule.
  2. Select the checkbox that displays for that rule.
  3. To modify multiple rules, hold the pointer over each rule and select its corresponding checkbox.
  4. Click Approve or Deny as needed.

Publish a rule

  1. Hold the pointer over a rule.
  2. Select the checkbox that displays for that rule.
  3. To publish multiple rules, hold the pointer over each rule and select its corresponding checkbox.
  4. Click Publish Selected to publish the selected rules.

Publish an individual rule

  1. Hold the pointer over a rule.
  2. Click the Publish individual button button.
  3. To confirm, click Publish.

Delete rules

Delete a single rule

  1. Hold the pointer over a rule.
  2. Click the trash can.
  3. To confirm, click Delete.

Delete multiple rules

  1. Hold the pointer over a rule.
  2. Select the checkbox that displays for that rule.
  3. To delete multiple rules, hold the pointer over each rule and select its corresponding checkbox.
  4. Click Delete.
  5. To confirm, click Delete again.

Sort rules

  1. Hold the pointer over column titles. A Arrow down icon icon displays for some titles to indicate the rules list can be sorted by that column.
  2. Click the title column to sort the rules.
The column that is currently sorting the rules list is indicated by an Arrow down icon or Arrow up icon icon.

Export rules

To export the rules list, click Export. This generates a .csv file that contains your rules.

Columns

Customize columns

To customize columns:
  1. Hold the pointer over the row of column titles.
  2. Click the Config button button. Customize Columns to Display
  3. In the Customize Columns to Display screen, select the checkboxes for the columns you want to display. Clear the checkboxes for columns you do not want to display.
  4. Click Save. To exit without saving your changes, click Cancel.

Query rewrite jobs post-processing cleanup

To perform more extensive cleanup of query rewrites, complete the procedures in Query rewrite jobs post-processing cleanup.
The Synonym Detection job uses the output of the Misspelling Detection job and Phrase Extraction job. Therefore, post processing must occur in the order specified in this topic for the Synonym detection job cleanup, Phrase extraction job cleanup, and Misspelling detection job cleanup procedures. The Head-Tail Analysis job cleanup can occur in any order.

Synonym detection job cleanup

Use this job to remove low confidence synonyms.

Prerequisites

Complete this:
  • AFTER the Misspelling Detection and Phrase Extraction jobs have successfully completed.
  • BEFORE removing low confidence synonym suggestions generated in the post processing phrase extraction cleanup and misspelling detection cleanup procedures detailed later in this topic.

Remove low confidence synonym suggestions

Use either a Synonym cleanup method 1 - API call or the Synonym cleanup method 2 - Managed Fusion Admin UI to remove low confidence synonym suggestions.

Synonym cleanup method 1 - API call

  1. Open the delete_lowConf_synonyms.json file.
    {
        "type" : "rest-call",
        "id" : "DC_Large_QR_DELETE_LOW_CONFIDENCE_SYNONYMS",
        "callParams" : {
        "uri" : "solr://DC_Large_query_rewrite_staging/update",
        "method" : "post",
        "queryParams" : {
            "wt" : "json"
        },
        "headers" : { },
        "entity" : "<root><delete><query>type:synonym AND confidence:[0 TO 0.0005]</query></delete><commit/></root>"
        },
        "type" : "rest-call",
        "type" : "rest-call"
    }
    
    REQUEST ENTITY specifies the threshold for low confidence synonyms. Edit the upper range from 0.0005 to increase or decrease the threshold based on your data.
  2. Enter <your query_rewrite_staging collection name/update> in the uri field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  3. Change the id field if applicable.
  4. Specify the upper confidence level in the entity field.
    The entity field specifies the threshold for low confidence synonyms. Edit the upper range to increase or decrease the threshold based on your data.

Synonym cleanup method 2 - Managed Fusion Admin UI

  1. Log in to Managed Fusion and select Collections > Jobs.
  2. Select Add+ > Custom and Other Jobs > REST Call.
  3. Enter delete-low-confidence-synonyms in the ID field.
  4. Enter <your query_rewrite_staging collection name/update> in the ENDPOINT URI field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  5. Enter POST in the CALL METHOD field.
  6. In the QUERY PARAMETERS section, select + to add a property.
  7. Enter wt in the Property Name field.
  8. Enter json in the Property Value field.
  9. In the REQUEST PROTOCOL HEADERS section, select + to add a property.
  10. Enter the following as a REQUEST ENTITY (AS STRING) <root><delete><query>type:synonym AND confidence: [0 TO 0.0005]</query></delete><commit/></root>
    REQUEST ENTITY specifies the threshold for low confidence synonyms. Edit the upper range from 0.0005 to increase or decrease the threshold based on your data.

Delete all synonym suggestions

To delete all of the synonym suggestions, enter the following in the REQUEST ENTITY section:<root><delete><query>type:synonym</query></delete><commit/></root>
This entry may be helpful when tuning the synonym detection job and testing different configuration parameters.

Phrase extraction job cleanup

Use this job to remove low confidence phrase suggestions.

Prerequisites

Complete this:

Remove low confidence phrase suggestions

Use either a Phrase cleanup method 1 - API call or the Phrase cleanup method 2 - Managed Fusion Admin UI to remove low confidence phrase suggestions.

Phrase cleanup method 1 - API call

  1. Open the delete_lowConf_phrases.json file.
    {
    "type" : "rest-call",
    "id" : "DC_Large_QR_DELETE_LOW_CONFIDENCE_PHRASES",
    "callParams" : {
        "uri" : "solr://DC_Large_query_rewrite_staging/update",
        "method" : "post",
        "queryParams" : {
        "wt" : "json"
        },
        "headers" : { },
        "entity" : " <root><delete><query>type:phrase AND confidence:[0 TO <INSERT VALUE HERE>]</query></delete><commit/></root>"
    },
    "type" : "rest-call",
    "type" : "rest-call"
    }
  1. Enter <your query_rewrite_staging collection name/update> in the uri field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  2. Change the id field if applicable.
  3. Specify the upper confidence level in the entity field.
    The entity field specifies the threshold for low confidence phrases. Edit the upper range to increase or decrease the threshold based on your data.

Phrase cleanup method 2 - Managed Fusion Admin UI

  1. Log in to Managed Fusion and select Collections > Jobs.
  2. Select Add+ > Custom and Other Jobs > REST Call.
  3. Enter remove-low-confidence-phrases in the ID field.
  4. Enter <your query_rewrite_staging collection name/update> in the ENDPOINT URI field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  5. Enter POST in the CALL METHOD field.
  6. In the QUERY PARAMETERS section, select + to add a property.
  7. Enter wt in the Property Name field.
  8. Enter json in the Property Value field.
  9. In the REQUEST PROTOCOL HEADERS section, select + to add a property.
  10. Enter the following as a REQUEST ENTITY (AS STRING) <root><delete><query>type:phrase AND confidence: [0 TO <insert value>]</query></delete><commit/></root>
    REQUEST ENTITY specifies the threshold for low confidence phrases. Edit the upper range to increase or decrease the threshold based on your data.

Delete all phrase suggestions

To delete all of the phrase suggestions, enter the following in the REQUEST ENTITY section:<root><delete><query>type:phrase</query></delete><commit/></root>
This entry may be helpful when tuning the phrase extraction job and testing different configuration parameters.

Misspelling detection job cleanup

Use this job to remove low confidence spellings (also referred to as misspellings).

Prerequisites

Complete this:

Remove misspelling suggestions

Use either a Misspelling cleanup method 1 - API call or the Misspelling cleanup method 2 - Managed Fusion Admin UI to remove misspelling suggestions.

Misspelling cleanup method 1 - API call

  1. Open the delete_lowConf_misspellings.json file.
    {
    "type" : "rest-call",
    "id" : "DC_Large_QR_DELETE_LOW_CONFIDENCE_MISSPELLINGS",
    "callParams" : {
        "uri" : "solr://DC_Large_query_rewrite_staging",
        "method" : "post",
        "queryParams" : {
        "wt" : "json"
        },
        "headers" : { },
        "entity" : "<root><delete><query>type:spell AND confidence:[0 TO 0.5]</query></delete><commit/></root>"
    },
    "type" : "rest-call",
    "type" : "rest-call"
    }
    
  2. Enter <your query_rewrite_staging collection name/update> in the uri field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  3. Change the id field if applicable.
  4. Specify the upper confidence level in the entity field.
    The entity field specifies the threshold for low confidence spellings. Edit the upper range to increase or decrease the threshold based on your data.

Misspelling cleanup method 2 - Managed Fusion Admin UI

  1. Log in to Managed Fusion and select Collections > Jobs.
  2. Select Add+ > Custom and Other Jobs > REST Call.
  3. Enter remove-low-confidence-spellings in the ID field.
  4. Enter <your query_rewrite_staging collection name/update> in the ENDPOINT URI field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  5. Enter POST in the CALL METHOD field.
  6. In the QUERY PARAMETERS section, select + to add a property.
  7. Enter wt in the Property Name field.
  8. Enter json in the Property Value field.
  9. In the REQUEST PROTOCOL HEADERS section, select + to add a property.
  10. Enter the following as a REQUEST ENTITY (AS STRING) <root><delete><query>type:spell AND confidence: [0 TO 0.5]</query></delete><commit/></root>
    REQUEST ENTITY specifies the threshold for low confidence spellings. Edit the upper range from 0.5 to increase or decrease the threshold based on your data.

Delete all misspelling suggestions

To delete all of the misspelling suggestions, enter the following in the REQUEST ENTITY section:<root><delete><query>type:spell</query></delete><commit/></root>
This entry may be helpful when tuning the misspelling detection job and testing different configuration parameters.

Head-tail analysis job cleanup

The head-tail analysis job puts tail queries into one of multiple reason categories. For example, a tail query that includes a number might be assigned to the ‘numbers’ reason category. If the output in a particular category is not useful, you can remove it from the results. The examples in this section remove the numbers category.

Prerequisites

The head-tail analysis job cleanup does not have to occur in a specific order.

Remove head-tail analysis query suggestions

Use either a Head-tail analysis cleanup method 1 - API call or the Head-tail analysis cleanup method 2 - Managed Fusion Admin UI to remove query category suggestions.

Head-tail analysis cleanup method 1 - API call

  1. Open the delete_lowConf_headTail.json file.
    {
    "type" : "rest-call",
    "id" : "DC_Large_QR_HEAD_TAIL_CLEANUP",
    "callParams" : {
        "uri" : "solr://DC_Large_query_rewrite_staging/update",
        "method" : "post",
        "queryParams" : {
        "wt" : "json"
        },
        "headers" : { },
        "entity" : "<root><delete><query>reason_code_s:(\"number\" \"number spelling\" \"number rare-term\" \"question number other-specific\" \"number others\" \"number other-specific\" \"number other-extra\" \"product number other-specific\" \"product number other-extra\" \"product number spelling\" \"product number others\" \"product number rare-term\" \"product question number\" \"product number re-wording\" \"question number other-extra\" \"number re-wording\")</query></delete><commit/></root>"
    },
    "type" : "rest-call",
    "type" : "rest-call"
    }
    
  2. Enter <your query_rewrite_staging collection name/update> in the uri field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  3. Change the id field if applicable.

Head-tail analysis cleanup method 2 - Managed Fusion Admin UI

  1. Log in to Managed Fusion and select Collections > Jobs.
  2. Select Add+ > Custom and Other Jobs > REST Call.
  3. Enter remove-low-confidence-head-tail in the ID field.
  4. Enter <your query_rewrite_staging collection name/update> in the ENDPOINT URI field. An example URI value for an app called DC_Large would be DC_Large_query_rewrite_staging/update.
  5. Enter POST in the CALL METHOD field.
  6. In the QUERY PARAMETERS section, select + to add a property.
  7. Enter wt in the Property Name field.
  8. Enter json in the Property Value field.
  9. In the REQUEST PROTOCOL HEADERS section, select + to add a property.
  10. Enter the following as a REQUEST ENTITY (AS STRING)
    <root><delete><query>reason_code_s:("number" "number spelling" "number rare-term" "question number other-specific" "number others" "number other-specific" "number other-extra" "product number other-specific" "product number other-extra" "product number spelling" "product number others" "product number rare-term" "product question number" "product number re-wording" "question number other-extra" "number re-wording")</query></delete><commit/></root>
    

Delete all head-tail suggestions

To delete all of the head-tail suggestions, enter the following in the REQUEST ENTITY section:<root><delete><query>type:tail</query></delete><commit/></root>
This entry may be helpful when tuning the head-tail job and testing different configuration parameters.